home *** CD-ROM | disk | FTP | other *** search
/ Corel Professional Photos - Index & Utilities / Corel Stock Photo Library 2 - Index And Utilities.iso / french / utils / mosaic / custom / userproc.ps < prev   
Text File  |  1993-07-01  |  82KB  |  3,329 lines

  1. %%  --------------------------------------------------------------------
  2. %%  ----------- Fichier dΘcrivant les fonctions que l'utilisateur CorelDRAW peut dΘfinir ---------------------
  3. %%  ------Nom du fichier: USERPROC.TXT------------------------------------
  4. %% REMARQUES:
  5.  
  6.     Il existe deux types de fonctions pouvant Ωtre dΘfinies par l'utilisateur: la fonction "Spot" et la fonction "Fill"
  7.  
  8.     - Une fonction "Spot" se compose de deux coordonnΘes variables
  9.         (X et Y, dont les valeurs sont comprises entre -1 et 1) et donne lieu α 
  10.         un nombre rΘel entier compris entre -1 et 1 (dans le cas contraire, une
  11.         erreur d'exΘcution se produit) appelΘ Z.
  12.         Le domaine de la fonction consiste en un rectangle 2 X 2 qui sera tracΘ (au 
  13.         moment de l'impression) dans chaque cellule de la trame simili.
  14.         La reprΘsentation 3D de la fonction Z = f(X,Y) (qui ne doit pas 
  15.         nΘcessairement Ωtre continue, mais f(X,Y) doit cependant Ωtre dΘfinie pour tous 
  16.         les points -1 <= X, Y <= 1 ) consiste en une surface dont les points supΘrieurs 
  17.         apparaissent tout d'abord en blanc dans chaque cellule.
  18.         Pour de plus amples informations sur les fonctions "Spot", consultez la
  19.         section 4.8 du MANUEL DE REFERENCE DU LANGAGE POSTSCRIPT (Adobe 
  20.         Systems Inc.).
  21.  
  22.     - Une fonction "Fill" comprend entre 0 et 5 points de graduation. Elle suppose la 
  23.         prΘsence d'un tracΘ (fermΘ ou non, discontinu) α remplir.
  24.         Voici un exemple d'une fonction "Fill" ΘlΘmentaire:
  25.                 /MyFill1 { %0 parms
  26.                     .70 setgray fill } bind def
  27.         Pour des surfaces plus complexes, la fonction peut se rΘfΘrer au pΘrimΦtre 
  28.         de sΘlection de l'objet, qui est toujours dΘfini en unitΘs CORELDRAW (1/1000 
  29.         pouce) par rapport α l'origine logique CORELDRAW.
  30.  
  31.         Les paramΦtres Bbllx, Bblly, Bburx, Bbury peuvent Ωtre utilisΘs pour obtenir 
  32.         les coins infΘrieur gauche et supΘrieur droit du pΘrimΦtre de sΘlection.
  33.  
  34.         REMARQUE 1: Pour les objets constituΘs de tracΘs discontinus (p.ex., les mots 
  35.         de plusieurs lettres et les droites & courbes isolΘes), la fonction "Fill" sera 
  36.         appelΘe une fois pour chaque tronτon fermΘ. Toutefois, le pΘrimΦtre de 
  37.         sΘlection de l'objet reste identique pour chaque appel.
  38.  
  39.         REMARQUE 2: Une fois sollicitΘe par CORELDRAW, la fonction "Fill" sera
  40.         incluse dans une sΘquence "gsave - grestore" de sorte qu'elle ne 
  41.         doit pas ramener l'ΘlΘment graphique α son Θtat original. En ce qui concerne
  42.         l'Θtat prΘsent de l'ΘlΘment graphique, la fonction "Fill" se fonde sur l'hypothΦse
  43.         suivante:
  44.                 - L'angle de rotation en cours Θquivaut α 0░ (ou -90░ pour les 
  45.                 pages positionnΘes latΘralement).
  46.                 - L'unitΘ en cours corrrespond au MIL (1/1000 pouce).
  47.                 - Il existe un tracΘ destinΘ α recevoir une surface.
  48.  
  49. SYNTAXE UTILISEE POUR CE FICHIER:
  50.     - La dΘfinition d'une fonction commence par une ligne de commentaire "%@Spot" ou 
  51.     "%@Fill" partant de la colonne 1 de maniΦre α indiquer qu'une fonction "Spot" ou 
  52.     "Fill" va Ωtre dΘfinie. Le restant de la ligne est ignorΘ.
  53.     - La ligne suivante doit commencer par le nom de la fonction immΘdiatement prΘcΘdΘ 
  54.     d'une '/' (barre oblique) dans la colonne 1 (p.ex., /MyFirstFill).
  55.     Ce nom est utilisΘ pour identifier la surface dans les fichiers .CDR et 
  56.     .EPS. Le restant de la ligne indique le nom qui apparaεt dans la boεte de dialogue 
  57.     CORELDRAW destinΘe α sΘlectionner une fonction personnalisΘe ainsi que les 
  58.     paramΦtres dΘfinis par l'utilisateur pour cette fonction: les fonctions "Spot" 
  59.     n'autorisent pas des paramΦtres dΘfinis par l'utilisateur mais uniquement un nom 
  60.     d'affichage. Les fonctions "Fill" autorisent 0 α 5 paramΦtres dΘfinis comme suit:
  61.  
  62.             %<userfnname>,<# of parms> ,<parmname1>=<default1>,<parmname2>=<default2>,...
  63.  
  64.             o∙: <userfnname> correspond au nom affichΘ dans la zone de liste 
  65.                           PSFILL. Il s'agit de la chaεne de caractΦres traduite pour les 
  66.                           versions dans les langues ΘtrangΦres.
  67.              <# of parms> est un nombre entier compris entre 0 et 5
  68.              <parmnameX> correspond α la signification du paramΦtre X (chaεne pouvant comporter                 jusqu'α 20 caractΦres)
  69.              <defaultX> est la valeur numΘrique par dΘfaut pour ce paramΦtre (toujours un nombre                 entier)
  70.             Le nombre de noms de paramΦtres et de valeurs par dΘfaut doit 
  71.             toujours correspondre α la valeur <# of parms>.
  72.             Avant de faire appel α cette fonction "Fill", le programme 
  73.             principal empile les paramΦtres dans l'ordre o∙ ils ont ΘtΘ spΘcifiΘs.
  74.         TOUS LES PARAMETRES SONT DES NOMBRES ENTIERS.
  75.  
  76.         EXEMPLE:        Une fonction "Fill" α 3 paramΦtres
  77.  
  78.         %@Fill
  79.         /MyFunction  %MyFunctionName,3,Background gray=100,Foreground gray=50,Density=4
  80.             {        % when called, STACK= <BackGray> <ForeGray> <Density>
  81.             /Density exch 1 10 InRange def        % validate density
  82.             /ForeGray exch 0 100 InRange def        % validate foreground gray
  83.             /BackGray exch 0 100 InRange def        % validate background gray
  84.             ...
  85.             } bind def
  86.  
  87.             REMARQUE sur la fonction PostScript 'InRange'.
  88.             Le programme principal n'est pas α mΩme de valider l'Θtendue des 
  89.             paramΦtres.
  90.             La fonction "Fill" peut utiliser la fonction 'InRange' dΘcrite 
  91.             ci-dessous:
  92.                 <value> <min> <max> InRange  ==>  <newval>
  93.                 La fonction InRange prend 3 points de graduation de la pile et 
  94.                 veille ensuite α ce que le paramΦtre <value> se situe entre 
  95.                 <min> et <max>. Dans ce cas, elle laisse le paramΦtre <value>
  96.                 sur la pile. Sinon, elle insΦre une nouvelle valeur autorisΘe 
  97.                 <newval> sur la pile.
  98.  
  99.             Remarque sur la fonction PostScript ''wDstChck'.
  100.             Lorsque la valeur maximale Θgale la valeur minimale, la diffΘrence 
  101.             Θquivaut α zΘro. Dans de nombreux cas, on retrouvera un zΘro au 
  102.             dΘnominateur.
  103.             La fonction "Fill" peut utiliser la fonction 'wDstChck'' dΘcrite 
  104.                         ci-dessous:
  105.                 <MaxValue> <MinValue> wDstChck ==> MaxValue or MaxValue+1
  106.                 Si les deux valeurs sont Θgales
  107.                               ajouter 1 α la valeur maximale (MaxValue) et la laisser sur la pile
  108.                             sinon
  109.                               laisser la valeur maximale (MaxValue) inchangΘe sur la pile.
  110.  
  111.     - Les n lignes suivantes contiennent le corps de la fonction qui est dΘlimitΘ par des 
  112.     accolades et suivi d'une sΘquence "bind def".
  113.     - Le contenu du corps n'est pas analysΘ par CORELDRAW. La dΘfinition d'une 
  114.     fonction est terminΘe lorsque le programme passe α la lecture de la sΘquence '%@..." 
  115.     suivante ou lorsqu'il arrive α la fin du fichier.
  116.     - La longueur des lignes ne peut dΘpasser 150 caractΦres.
  117.     - Le nom des fonctions ne peut comprendre plus de 20 caractΦres.
  118.     - Le nom des paramΦtres ne peut comprendre plus de 20 caractΦres.
  119.     - Le nombre de lignes contenues dans les fonctions est illimitΘ.
  120.  
  121.  
  122. %@Spot
  123. /Dot2 %Dot2
  124.         { %def --SPOT FUNCTION : DOT2: black around cells
  125.         dup mul exch dup mul add 1 sub
  126.         } bind def
  127.  
  128. %@Spot
  129. /OutCircleBlk %OutCircleBlk
  130.         { %def --SPOT FUNCTION : OUTCIRCLE: empty black circles
  131.         dup mul exch dup mul add
  132.         0.6 exch sub abs -0.5 mul
  133.         } bind def
  134.  
  135. %@Spot
  136. /OutCircleWhi %OutCircleWhi
  137.         { %def --SPOT FUNCTION : OUTCIRCLE: empty black circles
  138.         dup mul exch dup mul add
  139.         0.6 exch sub abs 0.5 mul
  140.         } bind def
  141.  
  142. %@Spot
  143. /Diamond %Diamond
  144.         { %def --SPOT FUNCTION : DIAMOND1
  145.         abs exch abs add 1 exch sub
  146.         } bind def
  147.  
  148. %@Spot
  149. /Diamond2 %Diamond2
  150.         { %def --SPOT FUNCTION : DIAMOND2
  151.                 abs exch abs 2 copy add .75
  152.                 le {dup mul exch dup mul add 1
  153.                 exch sub} {2 copy add 1.25 
  154.                 le {.85 mul add 1 exch sub} 
  155.                 {1 sub dup mul exch 1 sub dup mul
  156.                 add 1 sub} ifelse} ifelse
  157.         } bind def
  158.  
  159. %@Spot
  160. /MicroWaves %MicroWaves
  161.         { %def --SPOT FUNCTION : MICROWAVES
  162.         /wy exch def
  163.         180 mul cos 2 div wy dup dup dup mul mul sub mul wy add
  164.         180 mul cos
  165.         } bind def
  166.  
  167. %@Spot
  168. /Grid %Grid
  169.         { % A SQUARE GRID
  170.         2 copy
  171.         abs exch abs
  172.         gt {exch} if
  173.         pop 2 mul 1 exch sub 3.5 div
  174.         } bind def
  175.  
  176. %@Spot
  177. /Lines %Lines
  178.         { % STRAIGHT LINES
  179.         pop abs 2 mul 1 exch sub
  180.         } bind def
  181.  
  182. %@Spot
  183. /Star %Star
  184.      {
  185.      abs exch abs
  186.      2 copy gt {exch} if
  187.      1  sub
  188.     dup 0 eq {0.01 add}if
  189.      atan 360 div
  190.      } bind def
  191.  
  192. %@Spot
  193. /Euclidean %Euclidean
  194.         { %def --SPOT FUNCTION : EUCLIDEAN composite dot
  195.                 abs exch abs
  196.                 2 copy add 1
  197.                 gt {1 sub dup mul
  198.                 exch 1 sub dup mul 
  199.                 add 1 sub} {dup mul exch
  200.                 dup mul add 1 exch sub}
  201.                 ifelse
  202.         } bind def
  203.  
  204. %@Spot
  205. /Rhomboid %Rhomboid
  206.              { %def --SPOT FUNCTION : RHOMBOID
  207.                 abs exch abs .8
  208.                 mul add 2 div
  209.         } bind def
  210.  
  211. %@Spot
  212. /Elliptical %Elliptical
  213.              { %def --SPOT FUNCTION : ELLIPTICAL
  214.                 dup mul .9 mul
  215.                 exch dup mul add
  216.                 1 sub
  217.         } bind def
  218.  
  219. %----------------------------------------------------------------------------
  220.  
  221. %@Fill
  222. /Archimedes %ArchimΦde,4, LinΘature=8, LargeurLigne=5, GrisPremierplan=100, GrisArriΦreplan=0
  223.    {
  224.    /BackgroundGray exch -1 100 InRange def
  225.    /ForegroundGray exch 0 100 InRange def
  226.    /Linewidth      exch 0 100 InRange def
  227.    /Frequency      exch 2 100 InRange def
  228.  
  229.    /newfont 10 dict def
  230.    newfont begin
  231.  
  232.    /FontMatrix [3 sqrt 1 add 1 exch div  0  0
  233.                3 sqrt 1 add 1 exch div  0  0] def
  234.    /FontType 3 def
  235.    /FontBBox [0 0 3 sqrt 1 add 3 sqrt 1 add] def
  236.    /Encoding 256 array def
  237.    0 1 255 {Encoding exch /.notdef put} for
  238.  
  239.    /BuildChar
  240.      { 3 sqrt 1 add  0
  241.        -0.1 -0.1 3 sqrt 1.1 add 3 sqrt 1.1 add
  242.        setcachedevice
  243.        pop begin
  244.  
  245.        0 0 moveto
  246.        1 2 div  0 lineto
  247.        0  3 sqrt 2 div lineto
  248.        3 sqrt 2 div  3 sqrt 1 add 2 div lineto
  249.        0  3 sqrt 2 div 1 add lineto
  250.        0  3 sqrt 2 div lineto
  251.  
  252.        0  3 sqrt 2 div 1 add moveto
  253.        1 2 div  3 sqrt 1 add lineto
  254.        3 sqrt 1 add 2 div  3 sqrt 1 2 div add lineto
  255.        3 sqrt 2 div  3 sqrt 1 add 2 div lineto
  256.        3 sqrt 2 div 1 add  3 sqrt 1 add 2 div lineto
  257.        3 sqrt 1 add 2 div  3 sqrt 1 2 div add lineto
  258.        3 sqrt 1 2 div add  3 sqrt 1 add lineto
  259.        3 sqrt 1 add  3 sqrt 2 div 1 add lineto
  260.        3 sqrt 2 div 1 add  3 sqrt 1 add 2 div lineto
  261.        3 sqrt 1 add  3 sqrt 2 div lineto
  262.        3 sqrt 1 2 div add  0 lineto
  263.        3 sqrt 1 add 2 div  1 2 div lineto
  264.        3 sqrt 2 div 1 add  3 sqrt 1 add 2 div lineto
  265.  
  266.        3 sqrt 1 add 2 div  3 sqrt 1 add moveto
  267.        3 sqrt 1 add 2 div  3 sqrt 1 2 div add lineto
  268.  
  269.        3 sqrt 1 add 2 div  0  moveto
  270.        3 sqrt 1 add 2 div  1 2 div lineto
  271.  
  272.        1 2 div  0 moveto
  273.        3 sqrt 1 add 2 div  1 2 div lineto
  274.        3 sqrt 2 div  3 sqrt 1 add 2 div lineto
  275.  
  276.        3 sqrt 1 2 div add  0 moveto
  277.        3 sqrt 1 add  0 lineto
  278.  
  279.        3 sqrt 1 2 div add  3 sqrt 1 add moveto
  280.        3 sqrt 1 add  3 sqrt 1 add lineto
  281.  
  282.        0  3 sqrt 1 add moveto
  283.        1 2 div  3 sqrt 1 add lineto
  284.  
  285.        3 sqrt 1 add  3 sqrt 2 div moveto
  286.        3 sqrt 1 add  3 sqrt 2 div 1 add lineto
  287.  
  288.        Linewidth pntsize div 3 sqrt 1 add mul setlinewidth
  289.        stroke
  290.  
  291.       end
  292.      } def
  293.    end
  294.  
  295.    /pntsize 2000 Frequency div def
  296.    /FillFont newfont definefont pop
  297.    /FillFont findfont pntsize scalefont setfont
  298.  
  299.    eoclip
  300.    BackgroundGray 0 ge
  301.       { BackgroundGray 100 div 1 exch sub setgray fill }
  302.       { newpath } ifelse
  303.  
  304.    ForegroundGray 100 div 1 exch sub setgray
  305.  
  306.    Bblly pntsize Bbury
  307.      { Bbllx pntsize Bburx
  308.        { 1 index moveto
  309.        (a) show
  310.        } for
  311.      pop
  312.      } for
  313.    } bind def
  314.  
  315. %@Fill
  316. /Bars %Barres,4, Largeur=10, Espacement(%)=100, GrisMaximum=100, GrisMinimum=10
  317.    {
  318.    /MinGrey exch 0 100 InRange def
  319.    /MaxGrey exch MinGrey 100 InRange def
  320.    /Spacing exch 0 300 InRange def
  321.    /Width exch 1 100 InRange def
  322.  
  323.    /dgrey MaxGrey MinGrey sub def
  324.    /inc 1 Spacing 100 div add def
  325.  
  326.    eoclip newpath
  327.  
  328.    currentscreen
  329.    3 -1 roll
  330.    pop 90
  331.    3 1 roll
  332.    setscreen
  333.  
  334.    Bbllx Bblly translate
  335.    /dx Bburx Bbllx sub Width div def
  336.    /dy Bbury Bblly sub Width div def
  337.    Width 10 mul dup scale
  338.    /mtx matrix currentmatrix def
  339.    .05 setlinewidth
  340.  
  341.    0 inc dx
  342.      { 0 translate
  343.       -.5 .05 .5
  344.          { dup 0 moveto
  345.            dup dy lineto
  346.            dup mul 0.250001 exch sub sqrt 2 mul
  347.            dgrey mul MaxGrey exch sub 100 div 1 exch sub setgray
  348.            stroke
  349.          } for
  350.       mtx setmatrix
  351.       } for
  352.    dx 0 translate
  353.    90 rotate
  354.    /mtx matrix currentmatrix def
  355.    0 inc dy
  356.      { 0 translate
  357.       -.5 .05 .5
  358.          { dup 0 moveto
  359.            dup dx lineto
  360.            dup mul 0.250001 exch sub sqrt 2 mul
  361.            dgrey mul MaxGrey exch sub 100 div 1 exch sub setgray
  362.            stroke
  363.          } for
  364.       mtx setmatrix
  365.       } for
  366.    } bind def
  367.  
  368. %@Fill
  369. /Basketweave %Tresses de panier,4, LinΘature=6, Largeurligne=10, GrisPremierplan=100, LargeurTissage(%)=100
  370.    {
  371.    /Width exch 1 200 InRange def
  372.    /Grey exch 0 100 InRange def
  373.    /LineWidth exch 0 100 InRange def
  374.    /Frequency exch 1 100 InRange def
  375.  
  376.    /dif Width 100 sub 100 div def
  377.  
  378.    /newfont 10 dict def
  379.    newfont begin
  380.  
  381.    /FontMatrix [.25  0
  382.                 0    .25
  383.                 0    0] def
  384.    /FontType 3 def
  385.    /FontBBox [0 0 4 4] def
  386.    /Encoding 256 array def
  387.    0 1 255 {Encoding exch /.notdef put} for
  388.    Encoding 97 /Holes put
  389.    Encoding 98 /Weave put
  390.  
  391.    /CharProcs 3 dict def
  392.    CharProcs begin
  393.    /.notdef {} def
  394.    /Holes
  395.       {
  396.       1 dif moveto
  397.       2 dif sub 1 lineto
  398.       1 2 dif sub lineto
  399.       dif 1 lineto
  400.       closepath
  401.       fill
  402.  
  403.       3 2 dif add moveto
  404.       4 dif sub 3 lineto
  405.       3 4 dif sub lineto
  406.       2 dif add 3 lineto
  407.       closepath
  408.       fill
  409.       } def
  410.    /Weave
  411.       {
  412.       0 3 dif add moveto
  413.       1 dif sub 4 lineto
  414.  
  415.       0 1 dif add moveto
  416.       1 dif lineto
  417.  
  418.       3 dif sub 4 moveto
  419.       4 dif sub 3 lineto
  420.  
  421.       1 dif sub 0 moveto
  422.       2 dif sub 1 lineto
  423.  
  424.       4 3 dif add moveto
  425.       3 2 dif add lineto
  426.  
  427.       3 dif sub 0 moveto
  428.       1 2 dif sub lineto
  429.  
  430.       4 1 dif add moveto
  431.       2 dif add 3 lineto
  432.  
  433.       dif 1 moveto
  434.       3 4 dif sub lineto
  435.  
  436.       LineWidth 100 div setlinewidth
  437.       stroke
  438.       } def
  439.    end
  440.  
  441.    /BuildChar
  442.      { 4  0
  443.        -0.1 -0.1 4.1 4.1
  444.        setcachedevice
  445.        exch begin
  446.        Encoding exch get
  447.        CharProcs exch get
  448.        end
  449.        exec
  450.      } def
  451.    end
  452.  
  453.    /pntsize 1000 Frequency div def
  454.  
  455.    /FillFont newfont definefont pop
  456.    /FillFont findfont pntsize scalefont setfont
  457.  
  458.    eoclip newpath
  459.  
  460.    Grey 100 div 1 exch sub setgray
  461.    Bblly pntsize Bbury
  462.      { Bbllx exch moveto
  463.        { (a) show
  464.          currentpoint
  465.          pop Bburx gt
  466.          {exit} if
  467.        } loop
  468.      } for
  469.  
  470.    0 setgray
  471.    Bblly pntsize Bbury
  472.      { Bbllx exch moveto
  473.        { (b) show
  474.          currentpoint
  475.          pop Bburx gt
  476.          {exit} if
  477.        } loop
  478.      } for
  479.  
  480.    } bind def
  481.  
  482. %@Fill
  483. /Birds %Oiseaux,4, LinΘature=8, LargeurLigne=4, GrisPremierplan=100, GrisArriΦreplan=0
  484.    {
  485.    /BackgroundGray exch -1 100 InRange def
  486.    /ForegroundGray exch 0 100 InRange def
  487.    /Linewidth      exch 0 100 InRange def
  488.    /Frequency      exch 2 100 InRange def
  489.  
  490.    /newfont 10 dict def
  491.    newfont begin
  492.  
  493.    /FontMatrix [1 162 div  0
  494.                 0         1 162 div
  495.                 0         0] def
  496.    /FontType 3 def
  497.    /FontBBox [-92 -150 46 12] def
  498.    /Encoding 256 array def
  499.    0 1 255 {Encoding exch /.notdef put} for
  500.  
  501.    /BuildChar
  502.      { 138  0
  503.        -92 -150 46 12
  504.        setcachedevice
  505.        pop begin
  506.  
  507.        -92 -150 moveto
  508.        -92 12   lineto
  509.        46  12   lineto
  510.        46 -150  lineto
  511.        closepath
  512.        clip
  513.        newpath
  514.  
  515.        2 {
  516.          gsave
  517.          3 {
  518.            -10 -8 moveto
  519.            60 24  -54 60  -9 72 curveto
  520.            -2.5 73.7  11.5 70.3  29 75.4 curveto
  521.  
  522.            -54 6 moveto
  523.            -45 14  -27 16  -18 18 curveto
  524.            27 27  -81 54  -9 90 curveto
  525.  
  526.            -126 9 moveto
  527.            -114 27  -66 66  -54 24 curveto
  528.            -53 21  -49 15  -43 12 curveto
  529.  
  530.            [ -1     0
  531.               0     1
  532.               0     0 ] concat
  533.              135 -81 translate
  534.          } repeat
  535.  
  536.        Linewidth pntsize div 162 mul setlinewidth
  537.        stroke
  538.        grestore
  539.        138 0 translate
  540.  
  541.      } repeat
  542.  
  543.      end
  544.      } def
  545.    end
  546.  
  547.    /pntsize 1174 Frequency div def
  548.  
  549.    /FillFont newfont definefont pop
  550.    /FillFont findfont pntsize scalefont setfont
  551.  
  552.    eoclip
  553.    BackgroundGray 0 ge
  554.       { BackgroundGray 100 div 1 exch sub setgray fill }
  555.       { newpath } ifelse
  556.  
  557.    ForegroundGray 100 div 1 exch sub setgray
  558.  
  559.     Bblly pntsize Bbury
  560.         { Bbllx exch moveto
  561.         { (a) show
  562.           currentpoint
  563.           pop Bburx gt
  564.           {exit} if
  565.         } loop
  566.       } for
  567.     } bind def
  568.  
  569. %@Fill
  570. /Bricks %Briques,4, LinΘature=8, LargeurLigne=5, GrisPremierplan=100, GrisArriΦreplan=0
  571.    {
  572.    /BackgroundGray exch -1 100 InRange def
  573.    /ForegroundGray exch 0 100 InRange def
  574.    /Linewidth      exch 0 100 InRange def
  575.    /Frequency      exch 2 100 InRange def
  576.  
  577.    /newfont 10 dict def
  578.    newfont begin
  579.  
  580.    /FontMatrix [1  0  0
  581.                 1  0  0] def
  582.    /FontType 3 def
  583.    /FontBBox [0 0 1 1] def
  584.    /Encoding 256 array def
  585.    0 1 255 {Encoding exch /.notdef put} for
  586.  
  587.    /BuildChar
  588.      { 1  0
  589.        -0.1 -0.1 1.1 1.1
  590.        setcachedevice
  591.        pop begin
  592.  
  593.        0 0 moveto
  594.        1 0 lineto
  595.        1 .5 lineto
  596.        0 .5 lineto
  597.        closepath
  598.        .5 .5 moveto
  599.        .5 1 lineto
  600.  
  601.        Linewidth pntsize div setlinewidth
  602.        stroke
  603.  
  604.       end
  605.      } def
  606.    end
  607.  
  608.    /pntsize 1000 Frequency div def
  609.  
  610.    /FillFont newfont definefont pop
  611.    /FillFont findfont pntsize scalefont setfont
  612.  
  613.    eoclip
  614.    BackgroundGray 0 ge
  615.       { BackgroundGray 100 div 1 exch sub setgray fill }
  616.       { newpath } ifelse
  617.  
  618.    ForegroundGray 100 div 1 exch sub setgray
  619.  
  620.    Bblly pntsize Bbury
  621.      { Bbllx exch moveto
  622.        { (a) show
  623.          currentpoint
  624.          pop Bburx gt
  625.          {exit} if
  626.        } loop
  627.      } for
  628.    } bind def
  629.  
  630. %@Fill
  631. /Bubbles %Bulles,5, Nombre(pouce carrΘ)=25, TailleMax=300, TailleMin=10, LargeurLigne=10, RΘpartitionAlΘatoire=0
  632.    { srand
  633.    /LineWidth exch 0 50 InRange def
  634.    /MinSize exch 1 1000 InRange def
  635.    /MaxSize exch MinSize 1000 InRange def
  636.    /Number exch 1 250 InRange def
  637.  
  638.    eoclip
  639.    newpath
  640.    /pntsize MaxSize MinSize div cvi def
  641.    /dx Bburx Bbllx sub def
  642.    /dy Bbury Bblly sub def
  643.  
  644.    dx dy mul Number mul 1000000 div cvi
  645.    {  rand dx mod Bbllx add
  646.       rand dy mod Bblly add
  647.       rand pntsize mod 1 add pntsize exch div MinSize mul
  648.       3 copy
  649.       2 index add
  650.       exch
  651.       moveto
  652.       pop
  653.       0 360 arc
  654.       gsave
  655.       0 setgray
  656.       LineWidth setlinewidth
  657.       stroke
  658.       grestore
  659.       1 setgray
  660.       fill
  661.       } repeat
  662.  
  663.    } bind def
  664.  
  665. %@Fill
  666. /Carpet %Tapis,5, LinΘature(dpi)=72, Gris=100, Gamma(taille-zone)=50, FacteurModif=3, Alpha=10
  667.    {
  668.    /Alpha exch def
  669.    /Modf exch def
  670.    /Gamma exch def
  671.    /Grey exch 0 100 InRange def
  672.    /Frequency exch 10 300 InRange def
  673.  
  674.    /Beta1 -10 def
  675.    /Beta2 -15 def
  676.  
  677.    eoclip newpath
  678.  
  679.    /wz 360 def
  680.    2 1 Gamma sqrt
  681.       { dup Gamma exch mod
  682.       0 eq { dup wz exch mod
  683.            0 eq { /wz wz 2 index div cvi def
  684.                 } if
  685.            } if
  686.       pop
  687.       } for
  688.  
  689.    /newfont 10 dict def
  690.    newfont begin
  691.  
  692.    /FontMatrix [1 wz div  0
  693.                 0          1 wz div
  694.                 0          0] def
  695.    /FontType 3 def
  696.    /FontBBox [0 0 wz wz] def
  697.    /Encoding 256 array def
  698.    0 1 255 {Encoding exch /.notdef put} for
  699.  
  700.    /BuildChar
  701.      { wz  0
  702.        -0.1 -0.1 wz 0.1 add wz 0.1 add
  703.        setcachedevice
  704.        pop begin
  705.  
  706.       0 1 wz
  707.          { 0 1 wz
  708.             { 1 index 2 copy
  709.             Gamma mul Beta2 add sin
  710.             exch Gamma mul Beta1 add sin
  711.             add Alpha mul cvi Modf mod
  712.             0 eq { moveto
  713.                   1 0 rlineto
  714.                   0 1 rlineto
  715.                   -1 0 rlineto
  716.                   closepath
  717.                   fill }
  718.                  { pop pop } ifelse
  719.             }   for
  720.          pop
  721.          } for
  722.  
  723.        end
  724.      } def
  725.    end
  726.  
  727.    /pntsize wz 1000 mul Frequency div def
  728.  
  729.    /FillFont newfont definefont pop
  730.    /FillFont findfont pntsize scalefont setfont
  731.  
  732.    Grey 100 div 1 exch sub setgray
  733.    Bblly pntsize Bbury
  734.      { Bbllx 1 index moveto
  735.        { (a) show
  736.          currentpoint
  737.          dup 3 index sub
  738.          pntsize 2 div gt { pntsize sub } if
  739.          1 index Bburx gt
  740.          {pop pop pop exit} if
  741.          moveto
  742.        } loop
  743.      } for
  744.    } bind def
  745.  
  746. %@Fill
  747. /CircleGrid %Grille circulaire,5, LinΘature=6, LargeurLigne1=6, LargeurLigne2=6, Gris1=40, Gris2=40
  748.    {
  749.    /Grey2 exch -1 100 InRange def
  750.    /Grey1 exch -1 100 InRange def
  751.    /LineWidth2 exch 0 100 InRange def
  752.    /LineWidth1 exch 0 100 InRange def
  753.    /Frequency exch 1 72 InRange def
  754.  
  755.    /newfont 10 dict def
  756.    newfont begin
  757.  
  758.    /FontMatrix [1 3 sqrt 3 mul div  0
  759.                 0                   1 3 sqrt 3 mul div
  760.                 0                   0] def
  761.    /FontType 3 def
  762.    /FontBBox [0 0 2 3 sqrt 3 mul] def
  763.  
  764.    /Encoding 256 array def
  765.    0 1 255 {Encoding exch /.notdef put} for
  766.    Encoding 97 /OneCircle put
  767.    Encoding 98 /OneCircleFilled put
  768.    Encoding 99 /TwoCircles put
  769.    Encoding 100 /TwoCirclesFilled put
  770.  
  771.    /CharProcs 5 dict def
  772.    CharProcs begin
  773.    /.notdef {} def
  774.    /OneCircle
  775.      { 1 3 sqrt 2 div add  3 sqrt 5 mul 2 div moveto
  776.        1  3 sqrt 5 mul 2 div  3 sqrt 2 div 0 360 arc
  777.  
  778.        LineWidth1 pntsize div 3 sqrt 3 mul mul setlinewidth
  779.        stroke
  780.    } def
  781.  
  782.    /OneCircleFilled
  783.      { 1 3 sqrt 2 div add  3 sqrt 5 mul 2 div moveto
  784.        1  3 sqrt 5 mul 2 div  3 sqrt 2 div 0 350 arc
  785.  
  786.        fill
  787.    } def
  788.  
  789.    /TwoCircles
  790.      { 1 3 sqrt 2 div add  3 sqrt 2 div moveto
  791.        1 3 sqrt 2 div dup 0 360 arc
  792.  
  793.        1 3 sqrt 2 div add  3 sqrt 3 mul 2 div moveto
  794.        1  3 sqrt 3 mul 2 div  3 sqrt 2 div 0 360 arc
  795.  
  796.        LineWidth2 pntsize div 3 sqrt 3 mul mul setlinewidth
  797.        stroke
  798.    } def
  799.  
  800.    /TwoCirclesFilled
  801.      { 1 3 sqrt 2 div add  3 sqrt 2 div moveto
  802.        1 3 sqrt 2 div dup 0 360 arc
  803.  
  804.        1 3 sqrt 2 div add  3 sqrt 3 mul 2 div moveto
  805.        1  3 sqrt 3 mul 2 div  3 sqrt 2 div 0 360 arc
  806.  
  807.        fill
  808.    } def
  809.  
  810.    end
  811.  
  812.    /BuildChar
  813.      {3 2 div  3 sqrt 3 mul 2 div
  814.       -0.1 -0.1 2.1  3 sqrt 3 mul 0.1 add
  815.       setcachedevice
  816.       exch begin
  817.       Encoding exch get
  818.       CharProcs exch get
  819.       end
  820.       exec
  821.      }def
  822.    end
  823.  
  824.    /pntsize 3000 Frequency div def
  825.  
  826.    /FillFont newfont definefont pop
  827.    /FillFont findfont pntsize scalefont setfont
  828.  
  829.    /Bbllx Bbllx pntsize sub def
  830.    /Bblly Bblly pntsize sub def
  831.    /Bburx Bburx pntsize add def
  832.    /Bbury Bbury pntsize add def
  833.  
  834.    eoclip newpath
  835.  
  836.    Grey1 0 ge
  837.       { Grey1 100 div 1 exch sub setgray
  838.       Bblly pntsize Bbury
  839.         { Bbllx 1 index moveto
  840.           { (b) show
  841.             currentpoint
  842.             dup 3 index sub
  843.             pntsize 2.1 div gt { pntsize sub } if
  844.             1 index Bburx gt
  845.             {pop pop pop exit} if
  846.             moveto
  847.           } loop
  848.        } for
  849.       } if
  850.  
  851.    Grey2 0 ge
  852.       { Grey2 100 div 1 exch sub setgray
  853.       Bblly pntsize Bbury
  854.         { Bbllx 1 index moveto
  855.           { (d) show
  856.             currentpoint
  857.             dup 3 index sub
  858.             pntsize 2.1 div gt { pntsize sub } if
  859.             1 index Bburx gt
  860.             {pop pop pop exit} if
  861.             moveto
  862.           } loop
  863.         } for
  864.       } if
  865.  
  866.    LineWidth1 0 gt
  867.       { 0 setgray
  868.       Bblly pntsize Bbury
  869.         { Bbllx 1 index moveto
  870.           { (a) show
  871.             currentpoint
  872.             dup 3 index sub
  873.             pntsize 2.1 div gt { pntsize sub } if
  874.             1 index Bburx gt
  875.             {pop pop pop exit} if
  876.             moveto
  877.           } loop
  878.         } for
  879.       } if
  880.  
  881.    LineWidth2 0 gt
  882.       { 0 setgray
  883.       Bblly pntsize Bbury
  884.         { Bbllx 1 index moveto
  885.           { (c) show
  886.             currentpoint
  887.             dup 3 index sub
  888.             pntsize 2.1 div gt { pntsize sub } if
  889.             1 index Bburx gt
  890.             {pop pop pop exit} if
  891.             moveto
  892.           } loop
  893.         } for
  894.       } if
  895.  
  896.    } bind def
  897.  
  898. %@Fill
  899. /Construction %Construction,4, LinΘature=8, LargeurLigne=5, GrisPremierplan=100, GrisArriΦreplan=0
  900.    {
  901.    /BackgroundGray exch -1 100 InRange def
  902.    /ForegroundGray exch 0 100 InRange def
  903.    /Linewidth      exch 0 100 InRange def
  904.    /Frequency      exch 2 100 InRange def
  905.  
  906.    /newfont 10 dict def
  907.    newfont begin
  908.  
  909.    /FontMatrix  [ .1     0
  910.                   0      .1
  911.                   0      0] def
  912.    /FontType 3 def
  913.    /FontBBox [-1 -1 9.66 11] def
  914.    /Encoding 256 array def
  915.    0 1 255 {Encoding exch /.notdef put} for
  916.  
  917.    /BuildChar
  918.      { 8.66 5
  919.        -1 -1 9.66 11
  920.        setcachedevice
  921.        pop begin
  922.  
  923.        1 0 moveto
  924.        0 0 1 -60 300 arc
  925.        3 sqrt 5 mul .5 add  5 3 sqrt 2 div sub lineto
  926.        3 sqrt 5 mul  5  1  -60 420 arc
  927.        .5  10 3 sqrt 2 div add lineto
  928.        0 10 1 60 180 arc
  929.        -1 0 lineto
  930.  
  931.        -.5 3 sqrt 2 div moveto
  932.        3 sqrt 5 mul .5 sub  5 3 sqrt 2 div add lineto
  933.        3 sqrt 5 mul .5 sub  5 3 sqrt 2 div sub moveto
  934.        -.5  10 3 sqrt 2 div sub lineto
  935.        1 10 moveto
  936.        1 0 lineto
  937.  
  938.        Linewidth pntsize div 10 mul setlinewidth
  939.        stroke
  940.       end
  941.      } def
  942.    end
  943.  
  944.    /pntsize 1126 Frequency div def
  945.    /FillFont newfont definefont pop
  946.    /FillFont findfont pntsize scalefont setfont
  947.  
  948.    /Bbllx Bbllx pntsize sub def
  949.  
  950.    eoclip
  951.    BackgroundGray 0 ge
  952.       { BackgroundGray 100 div 1 exch sub setgray fill }
  953.       { newpath } ifelse
  954.  
  955.    ForegroundGray 100 div 1 exch sub setgray
  956.  
  957.    Bblly pntsize Bbury
  958.      { Bbllx 1 index moveto
  959.        { (a) show
  960.          currentpoint
  961.          dup 3 index sub
  962.          pntsize 2.1 div gt { pntsize sub } if
  963.          1 index Bburx gt
  964.          {pop pop pop exit} if
  965.          moveto
  966.        } loop
  967.      } for
  968.    } bind def
  969.  
  970. %@Fill
  971. /Cracks %Fissures,5, Nombre=20, LongueurMax=125, LongueurMin=75, LongueurPas=14, LargeurLigne=5
  972.    {
  973.    /LineWidth exch 0 100 InRange def
  974.    /StepLength exch 1 100 InRange def
  975.    /MinLength exch 1 300 InRange def
  976.    /MaxLength exch MinLength 300 InRange MinLength wDstChck def
  977.    /Number exch 1 100 InRange def
  978.  
  979.    eoclip newpath
  980.  
  981.    /dx Bburx Bbllx sub def
  982.    /dy Bbury Bblly sub def
  983.  
  984.    Number {
  985.       gsave
  986.       /theta rand 360 mod def
  987.  
  988.       rand dx mod Bbllx add
  989.       rand dy mod Bblly add
  990.       moveto
  991.  
  992.       StepLength dup scale
  993.       LineWidth StepLength div setlinewidth
  994.  
  995.       MinLength
  996.       MaxLength MinLength sub
  997.       rand 1 index mod 2 index add
  998.          {
  999.          currentpoint translate
  1000.          rand 120 mod 60 sub theta add dup rotate
  1001.          0 0 moveto
  1002.          1 0 lineto
  1003.          stroke
  1004.          1 0 moveto
  1005.          neg rotate
  1006.          } repeat
  1007.       grestore
  1008.       pop pop
  1009.       } repeat
  1010.    } bind def
  1011.  
  1012. %@Fill
  1013. /Craters %CratΦres,5, Nombre=15, TailleMax=300, TailleMin=75, GrisArriΦreplan=0, RΘpartitionAlΘatoire=0
  1014.    { srand
  1015.    /BackgroundGrey exch 0 100 InRange def
  1016.    /MinSize exch 1 500 InRange def
  1017.    /MaxSize exch MinSize 500 InRange MinSize wDstChck def
  1018.    /Number exch 1 50 InRange def
  1019.  
  1020.    eoclip
  1021.    BackgroundGrey 100 div 1 exch sub setgray
  1022.    fill
  1023.  
  1024.    /pntsize 333 def
  1025.    /dx Bburx Bbllx sub def
  1026.    /dy Bbury Bblly sub def
  1027.    /DifSize MaxSize MinSize sub cvi def
  1028.  
  1029.    Bbllx Bblly translate
  1030.  
  1031.    matrix currentmatrix
  1032.    dx dy mul 1000000 div Number mul cvi {
  1033.       dup
  1034.       rand dx mod  rand dy mod  translate
  1035.       /size rand DifSize mod MinSize add def
  1036.       0 0 size .7 mul  0 360 arc
  1037.       BackgroundGrey 100 div 1 exch sub setgray fill
  1038.  
  1039.       0
  1040.          { rand 18 mod add 10 add
  1041.          dup 360 gt { pop exit } if
  1042.          dup rotate
  1043.          size 5 div  0 moveto
  1044.          rand 300 mod 200 add 500 div size mul  0 lineto
  1045.          dup neg rotate
  1046.          } loop
  1047.  
  1048.       0 setgray
  1049.       1 setlinewidth
  1050.       stroke
  1051.       setmatrix
  1052.       } repeat
  1053.    pop
  1054.    } bind def
  1055.  
  1056. %@Fill
  1057. /Crosshatching %Hachures croisΘes,5, DistanceMax=75, DistanceMin=0, LargeurLigne=5, Angle=45, RΘpartitionAlΘatoire=0
  1058.    { srand
  1059.    /Angle exch -180 180 InRange def
  1060.    /LineWidth exch 0 100 InRange def
  1061.    /MinDist exch 0 500 InRange def
  1062.    /MaxDist exch MinDist 500 InRange MinDist wDstChck def
  1063.  
  1064.    eoclip
  1065.    newpath
  1066.  
  1067.    /pntsize MaxDist MinDist sub def
  1068.    /dx2 Bburx Bbllx sub 2 div def
  1069.    /dy2 Bbury Bblly sub 2 div def
  1070.    /hyp2 dx2 dup mul dy2 dup mul add sqrt def
  1071.  
  1072.    Bbllx Bblly translate
  1073.    dx2 dy2 translate
  1074.    Angle rotate
  1075.    LineWidth setlinewidth
  1076.  
  1077.    /wd hyp2 neg def
  1078.       { /wd rand pntsize mod MinDist add wd add def
  1079.       wd hyp2 neg moveto
  1080.       wd hyp2 lineto
  1081.       stroke
  1082.       wd hyp2 gt {exit} if
  1083.       } loop
  1084.  
  1085.    Angle -2 mul rotate
  1086.    /wd hyp2 neg def
  1087.       { /wd rand pntsize mod MinDist add wd add def
  1088.       wd hyp2 neg moveto
  1089.       wd hyp2 lineto
  1090.       stroke
  1091.       wd hyp2 gt {exit} if
  1092.       } loop
  1093.  
  1094.    } bind def
  1095.  
  1096. %@Fill
  1097. /CrystalLattice %Treillis cristallin,4, LinΘature=4, GrisArriΦreplan=100, GrisPremierplan=0, Echelle(%)=75
  1098.    {
  1099.    /Scaling exch 10 100 InRange def
  1100.    /FrontGrey exch 0 100 InRange def
  1101.    /BackGrey exch -100 100 InRange def
  1102.    /Frequency exch 1 50 InRange def
  1103.  
  1104.    /newfont 10 dict def
  1105.    newfont begin
  1106.  
  1107.    /FontMatrix [1                   0
  1108.                 0                   1
  1109.                 0                   0] def
  1110.    /FontType 3 def
  1111.    /FontBBox [0 0 1 1] def
  1112.    /Encoding 256 array def
  1113.    0 1 255 {Encoding exch /.notdef put} for
  1114.  
  1115.    /BuildChar
  1116.      { 1 0
  1117.        -0.1 -0.1 1.1 1.1
  1118.        setcachedevice
  1119.        pop begin
  1120.  
  1121.        gsave
  1122.        0 0 moveto
  1123.        3 { 1 0 lineto
  1124.          currentpoint translate
  1125.          90 rotate
  1126.          } repeat
  1127.        closepath
  1128.        .05 setlinewidth
  1129.        stroke
  1130.        grestore
  1131.  
  1132.        gsave
  1133.        4 { .2 0 moveto
  1134.          0 0 .2 0 360 arc
  1135.          fill
  1136.          1 0 translate
  1137.          90 rotate
  1138.          } repeat
  1139.        grestore
  1140.  
  1141.        end
  1142.      } def
  1143.    end
  1144.  
  1145.    /pntsize 1000 Frequency div cvi def
  1146.  
  1147.    /FillFont newfont definefont pop
  1148.    /FillFont findfont pntsize scalefont setfont
  1149.  
  1150.    /dx Bburx Bbllx sub def
  1151.    /dy Bbury Bblly sub def
  1152.  
  1153.    eoclip newpath
  1154.  
  1155.    currentscreen
  1156.    3 -1 roll
  1157.    pop 120
  1158.    3 1 roll
  1159.    setscreen
  1160.  
  1161.    Bbllx dx 2 div add  Bblly dy 2 div add translate
  1162.  
  1163.    /dx dx 100 mul Scaling div def
  1164.    /dy dy 100 mul Scaling div def
  1165.  
  1166.    Scaling 100 div dup scale
  1167.    100 Scaling div log 10 div 10 exch exp
  1168.    BackGrey 0 100 InRange 100 div  FrontGrey BackGrey sub 1000 div  FrontGrey .1 sub 100 div
  1169.       { 1 exch sub setgray
  1170.       dup dup scale
  1171.       dy 2 div cvi dup pntsize mod pntsize 2 div sub sub neg
  1172.         pntsize   dy pntsize add 2 div
  1173.         { dx 2 div cvi dup pntsize mod pntsize 2 div sub sub neg
  1174.           1 index moveto
  1175.           { (a) show
  1176.             currentpoint
  1177.             dup 3 index sub
  1178.             pntsize 2.1 div gt { pntsize sub } if
  1179.             1 index dx pntsize add 2 div gt
  1180.             { pop pop pop exit } if
  1181.             moveto
  1182.           } loop
  1183.         } for
  1184.       } for
  1185.       pop
  1186.    } bind def
  1187.  
  1188. %@Fill
  1189. /Denim %Denim,5, LinΘature=72, GrisMax=100, GrisMin=0, Trame=60, RΘpartitionAlΘatoire=0
  1190.    { srand
  1191.    /Screen exch 30 300 InRange def
  1192.    /MinGrey exch 0 100 InRange def
  1193.    /MaxGrey exch MinGrey 100 InRange def
  1194.    /Frequency exch 1 300 InRange def
  1195.  
  1196.    eoclip newpath
  1197.  
  1198.    currentscreen
  1199.    3 -1 roll
  1200.    pop Screen
  1201.    3 1 roll
  1202.    setscreen
  1203.  
  1204.    /dx Bburx Bbllx sub def
  1205.    /dy Bbury Bblly sub def
  1206.    /wf Frequency 1000 div def
  1207.    /dgrey MaxGrey MinGrey sub 100 div def
  1208.  
  1209.    Bbllx Bblly translate
  1210.    /str 512 string def
  1211.  
  1212.    dx wf mul cvi 1 add  dy wf mul cvi 1 add  8  [wf 0 0 wf 0 0]
  1213.       { dgrey MinGrey 2.55 mul
  1214.       0 1 511
  1215.          { str exch
  1216.          rand -11 bitshift 255 and 4 index mul 3 index add cvi
  1217.          put
  1218.          } for
  1219.       pop pop
  1220.       str
  1221.      }image
  1222.  
  1223.    } bind def
  1224.  
  1225. %@Fill
  1226. /DNA %ADN,5, LinΘature=4, LargeurLigne=1, GrisPremierplan=100, GrisArriΦreplan=0, Espacement(%)=100
  1227.    {
  1228.    /Spacing        exch 1 300 InRange def
  1229.    /BackgroundGray exch -1 100 InRange def
  1230.    /ForegroundGray exch 0 100 InRange def
  1231.    /Linewidth      exch 0 100 InRange def
  1232.    /Frequency      exch 1 100 InRange def
  1233.  
  1234.    /newfont 10 dict def
  1235.    newfont begin
  1236.  
  1237.    /FontMatrix [1 360 div           0
  1238.                 0                   1 360 div
  1239.                 0                   0] def
  1240.    /FontType 3 def
  1241.    /FontBBox [-20 0 20 360] def
  1242.    /Encoding 256 array def
  1243.    0 1 255 {Encoding exch /.notdef put} for
  1244.  
  1245.    /BuildChar
  1246.      { Spacing 110
  1247.        -20  0 20 360
  1248.        setcachedevice
  1249.        pop begin
  1250.  
  1251.        Linewidth pntsize mul 110 div setlinewidth
  1252.        0 0 moveto
  1253.        0 1 360
  1254.           { dup sin 20 mul exch lineto
  1255.           } for
  1256.        stroke
  1257.        20 0 moveto
  1258.        0 1 360
  1259.           { dup cos 20 mul exch lineto
  1260.           } for
  1261.        stroke
  1262.        0 20 360
  1263.           { dup dup sin 20 mul exch moveto
  1264.           dup cos 20 mul exch lineto
  1265.           } for
  1266.        stroke
  1267.  
  1268.        end
  1269.      } def
  1270.    end
  1271.  
  1272.    /pntsize 2000 Frequency div def
  1273.  
  1274.    /FillFont newfont definefont pop
  1275.    /FillFont findfont pntsize scalefont setfont
  1276.  
  1277.    eoclip
  1278.    BackgroundGray 0 ge
  1279.       { BackgroundGray 100 div 1 exch sub setgray fill }
  1280.       { newpath } ifelse
  1281.  
  1282.    ForegroundGray 100 div 1 exch sub setgray
  1283.  
  1284.    Bblly pntsize sub pntsize Bbury pntsize add
  1285.      { Bbllx 1 index moveto
  1286.        { (a) show
  1287.          currentpoint
  1288.          dup 3 index sub
  1289.          pntsize 2.1 div gt { pntsize sub } if
  1290.          1 index Bburx gt
  1291.          {pop pop pop exit} if
  1292.          moveto
  1293.        } loop
  1294.      } for
  1295.    } bind def
  1296.  
  1297. %@Fill
  1298. /Fishscale %Ecailles,4, LinΘature=8, LargeurLigne=5, GrisPremierplan=100, GrisArriΦreplan=0
  1299.    {
  1300.    /BackgroundGray exch -1 100 InRange def
  1301.    /ForegroundGray exch 0 100 InRange def
  1302.    /Linewidth      exch 0 100 InRange def
  1303.    /Frequency      exch 2 100 InRange def
  1304.  
  1305.    /newfont 10 dict def
  1306.    newfont begin
  1307.  
  1308.    /FontMatrix [1  0  0
  1309.                 1  0  0] def
  1310.    /FontType 3 def
  1311.    /FontBBox [0 0 1 1] def
  1312.    /Encoding 256 array def
  1313.    0 1 255 {Encoding exch /.notdef put} for
  1314.  
  1315.    /BuildChar
  1316.      { 1  0
  1317.        0 0 1 1
  1318.        setcachedevice
  1319.        pop begin
  1320.  
  1321.        0.5 0.5 0.5 360 180 arcn
  1322.        0 1 0.5 270 360 arc
  1323.        1 1 0.5 180 270 arc
  1324.  
  1325.        Linewidth pntsize div setlinewidth
  1326.        stroke
  1327.  
  1328.       end
  1329.      } def
  1330.    end
  1331.  
  1332.    /pntsize 1000 Frequency div def
  1333.    /FillFont newfont definefont pop
  1334.    /FillFont findfont pntsize scalefont setfont
  1335.  
  1336.    eoclip
  1337.    BackgroundGray 0 ge
  1338.       { BackgroundGray 100 div 1 exch sub setgray fill }
  1339.       { newpath } ifelse
  1340.  
  1341.    ForegroundGray 100 div 1 exch sub setgray
  1342.  
  1343.     Bblly pntsize Bbury
  1344.       { Bbllx exch moveto
  1345.         { (a) show
  1346.           currentpoint
  1347.           pop Bburx gt
  1348.           {exit} if
  1349.         } loop
  1350.       } for
  1351.     } bind def
  1352.  
  1353.  
  1354. %@Fill
  1355. /Grass %Herbe,5, Nombre=100, TailleMax=35, TailleMin=7, Gris=0, RΘpartitionAlΘatoire=0
  1356.     { srand
  1357.     /Grey exch -1 100 InRange def
  1358.     /MinSize exch 1 100 InRange def
  1359.     /MaxSize exch MinSize 100 InRange MinSize wDstChck def
  1360.     /Number exch 1 500 InRange def
  1361.  
  1362.     eoclip
  1363.     Grey 0 ge
  1364.        { Grey 100 div 1 exch sub setgray fill }
  1365.        { newpath } ifelse
  1366.  
  1367.     /Bbllx Bbllx MaxSize sub def
  1368.     /Bblly Bblly MaxSize sub def
  1369.  
  1370.     /dx Bburx Bbllx sub def
  1371.     /dy Bbury Bblly sub def
  1372.     /dSize MaxSize MinSize sub def
  1373.  
  1374.     dx dy mul 1000000 div Number mul cvi
  1375.        {
  1376.  
  1377.        matrix currentmatrix
  1378.  
  1379.        rand dx mod Bbllx add
  1380.        rand dy mod Bblly add
  1381.        translate
  1382.  
  1383.        rand dSize mod MinSize add
  1384.        dup scale
  1385.  
  1386.        -0.5 0 moveto
  1387.        rand 14 mod 7 sub
  1388.        -0.5 3  2 index 3 div 0.3 sub 10  4 index 10 curveto
  1389.        3 div 0.3 add 10 0.5 3 0.5 0 curveto
  1390.        gsave
  1391.        1 setgray
  1392.        fill
  1393.        grestore
  1394.        0.1 setlinewidth
  1395.        0 setgray
  1396.        stroke
  1397.  
  1398.        setmatrix
  1399.  
  1400.        } repeat
  1401.  
  1402.      } bind def
  1403.  
  1404. %@Fill
  1405. /Hatching %Hachures,5, DistanceMax=75, DistanceMin=0, LargeurLigne=5, Angle=45, RΘpartitionAlΘatoire=0
  1406.    { srand
  1407.    /Angle exch -180 180 InRange def
  1408.    /LineWidth exch 0 100 InRange def
  1409.    /MinDist exch 0 500 InRange def
  1410.    /MaxDist exch MinDist 500 InRange MinDist wDstChck def
  1411.  
  1412.    eoclip
  1413.    newpath
  1414.  
  1415.    /pntsize MaxDist MinDist sub def
  1416.    /dx2 Bburx Bbllx sub 2 div def
  1417.    /dy2 Bbury Bblly sub 2 div def
  1418.    /hyp2 dx2 dup mul dy2 dup mul add sqrt def
  1419.  
  1420.    Bbllx Bblly translate
  1421.    dx2 dy2 translate
  1422.    Angle rotate
  1423.    LineWidth setlinewidth
  1424.  
  1425.    /wd hyp2 neg def
  1426.  
  1427.       { /wd rand pntsize mod MinDist add wd add def
  1428.       wd hyp2 neg moveto
  1429.       wd hyp2 lineto
  1430.       stroke
  1431.       wd hyp2 gt {exit} if
  1432.       } loop
  1433.  
  1434.    } bind def
  1435.  
  1436. %@Fill
  1437. /Hexagons %Hexagones,4, LinΘature=8, LargeurLigne=5, GrisPremierplan=100, GrisArriΦreplan=0
  1438.    {
  1439.    /BackgroundGray exch -1 100 InRange def
  1440.    /ForegroundGray exch 0 100 InRange def
  1441.    /LineWidth      exch 0 100 InRange def
  1442.    /Frequency      exch 2 100 InRange def
  1443.  
  1444.    /newfont 10 dict def
  1445.    newfont begin
  1446.  
  1447.    /FontMatrix [1 3 sqrt div        0
  1448.                 0                   1 3 sqrt div
  1449.                 0                   0] def
  1450.    /FontType 3 def
  1451.    /FontBBox [0 0 2 3 sqrt] def
  1452.    /Encoding 256 array def
  1453.    0 1 255 {Encoding exch /.notdef put} for
  1454.  
  1455.    /BuildChar
  1456.      { 3 2 div  3 sqrt 2 div
  1457.        -0.1 -0.1 2.1 3 sqrt 0.1 add
  1458.        setcachedevice
  1459.        pop begin
  1460.  
  1461.        1 2 div  0 moveto
  1462.        3 2 div  0 lineto
  1463.        2  3 sqrt 2 div lineto
  1464.        3 2 div  3 sqrt lineto
  1465.        1 2 div  3 sqrt lineto
  1466.        0  3 sqrt 2 div lineto
  1467.        closepath
  1468.  
  1469.        LineWidth pntsize div 3 sqrt mul setlinewidth
  1470.        stroke
  1471.  
  1472.       end
  1473.      } def
  1474.    end
  1475.  
  1476.    /pntsize 1155 Frequency div def
  1477.    /FillFont newfont definefont pop
  1478.    /FillFont findfont pntsize scalefont setfont
  1479.  
  1480.    eoclip
  1481.    BackgroundGray 0 ge
  1482.       { BackgroundGray 100 div 1 exch sub setgray fill }
  1483.       { newpath } ifelse
  1484.  
  1485.    ForegroundGray 100 div 1 exch sub setgray
  1486.  
  1487.    Bblly pntsize Bbury
  1488.      { Bbllx 1 index moveto
  1489.        { (a) show
  1490.          currentpoint
  1491.          dup 3 index sub
  1492.          pntsize 2 div gt { pntsize sub } if
  1493.          1 index Bburx gt
  1494.          {pop pop pop exit} if
  1495.          moveto
  1496.        } loop
  1497.      } for
  1498.    } bind def
  1499.  
  1500. %@Fill
  1501. /Honeycomb %Ruche,5, LinΘature=4, GrisArriΦreplan=100, GrisPremierplan=0, Echelle(%)=75, LargeurLigne=5
  1502.    {
  1503.    /LineWidth exch 0 100 InRange def
  1504.    /Scaling exch 10 100 InRange def
  1505.    /FrontGrey exch 0 100 InRange def
  1506.    /BackGrey exch -100 100 InRange def
  1507.    /Frequency exch 1 50 InRange def
  1508.  
  1509.    /newfont 10 dict def
  1510.    newfont begin
  1511.  
  1512.    /FontMatrix [1 3 sqrt div        0
  1513.                 0                   1 3 sqrt div
  1514.                 0                   0] def
  1515.    /FontType 3 def
  1516.    /FontBBox [0 0 2 3 sqrt] def
  1517.    /Encoding 256 array def
  1518.    0 1 255 {Encoding exch /.notdef put} for
  1519.  
  1520.    /BuildChar
  1521.      { 3 2 div  3 sqrt 2 div
  1522.        -0.1 -0.1 2.1 3 sqrt 0.1 add
  1523.        setcachedevice
  1524.        pop begin
  1525.  
  1526.        1 2 div  0 moveto
  1527.        3 2 div  0 lineto
  1528.        2  3 sqrt 2 div lineto
  1529.        3 2 div  3 sqrt lineto
  1530.        1 2 div  3 sqrt lineto
  1531.        0  3 sqrt 2 div lineto
  1532.        closepath
  1533.  
  1534.        LineWidth pntsize div 3 sqrt mul setlinewidth
  1535.        stroke
  1536.  
  1537.       end
  1538.      } def
  1539.    end
  1540.  
  1541.    /pntsize 1000 Frequency div cvi def
  1542.  
  1543.    /FillFont newfont definefont pop
  1544.    /FillFont findfont pntsize scalefont setfont
  1545.  
  1546.    /dx Bburx Bbllx sub def
  1547.    /dy Bbury Bblly sub def
  1548.  
  1549.    eoclip newpath
  1550.  
  1551.    currentscreen
  1552.    3 -1 roll
  1553.    pop 120
  1554.    3 1 roll
  1555.    setscreen
  1556.  
  1557.    Bbllx dx 2 div add  Bblly dy 2 div add translate
  1558.  
  1559.    /dx dx 100 mul Scaling div def
  1560.    /dy dy 100 mul Scaling div def
  1561.  
  1562.    Scaling 100 div dup scale
  1563.    100 Scaling div log 10 div 10 exch exp
  1564.    BackGrey 0 100 InRange 100 div  FrontGrey BackGrey sub 1000 div  FrontGrey .1 sub 100 div
  1565.       { 1 exch sub setgray
  1566.       dup dup scale
  1567.       dy 2 div cvi dup pntsize mod pntsize 2 div sub sub neg
  1568.         pntsize   dy pntsize add 2 div
  1569.         { dx 2 div cvi dup pntsize mod pntsize 2 div sub sub neg
  1570.           1 index moveto
  1571.           { (a) show
  1572.             currentpoint
  1573.             dup 3 index sub
  1574.             pntsize 2.1 div gt { pntsize sub } if
  1575.             1 index dx pntsize add 2 div gt
  1576.             { pop pop pop exit } if
  1577.             moveto
  1578.           } loop
  1579.         } for
  1580.       } for
  1581.    pop
  1582.    } bind def
  1583.  
  1584. %@Fill
  1585. /Impact %Impact,5, LargeurLigne=5, LongueurPas=15, AngleMaximum=40, AngleMinimum=10, RΘpartitionAlΘatoire=0
  1586.    { srand
  1587.    /MinAng exch 2 90 InRange def
  1588.    /MaxAng exch MinAng 90 InRange MinAng wDstChck def
  1589.    /Step exch 10 500 InRange def
  1590.    /Linewidth exch 0 100 InRange def
  1591.  
  1592.    eoclip
  1593.    newpath
  1594.  
  1595.    /dx Bburx Bbllx sub def
  1596.    /dy Bbury Bblly sub def
  1597.    /DifAng MaxAng MinAng sub def
  1598.  
  1599.    Bbllx Bblly translate
  1600.  
  1601.    dx 2 div  dy 2 div  translate
  1602.    Linewidth Step div setlinewidth
  1603.    Step Step scale
  1604.  
  1605.    /theta 0 def
  1606.       { matrix currentmatrix
  1607.       /theta theta rand DifAng mod add MinAng add def
  1608.       theta 360 gt {pop exit} if
  1609.       theta rotate
  1610.       0 0 moveto
  1611.       rand 150 mod 50 add
  1612.          {
  1613.          currentpoint translate
  1614.          rand 120 mod 60 sub theta add dup rotate
  1615.          1 0 lineto
  1616.          neg rotate
  1617.          } repeat
  1618.       stroke
  1619.       setmatrix
  1620.       } loop
  1621.    } bind def
  1622.  
  1623.  
  1624. %@Fill
  1625. /Landscape %Panorama,4, Profondeur=6, GrisMax=100, GrisMin=0, RΘpartitionAlΘatoire=0
  1626.    {
  1627.    srand
  1628.    /MinGrey exch 0 100 InRange def
  1629.    /MaxGrey exch MinGrey 100 InRange def
  1630.    /maxdepth exch 1 7 InRange def
  1631.  
  1632.    /dGrey MaxGrey MinGrey sub 200 div def
  1633.    /AvGrey MaxGrey MinGrey add 200 div def
  1634.  
  1635.    eoclip newpath
  1636.    /depth 0 def
  1637.    /ardepth 2 maxdepth 1 sub exp cvi def
  1638.    /height 1.8 8 maxdepth sub exp def
  1639.  
  1640.    /horz 0 def
  1641.    /vert 0 def
  1642.    /Array ardepth 1 add array def
  1643.    0 1 ardepth
  1644.       { Array exch ardepth 1 add array put
  1645.       } for
  1646.    0 1 ardepth
  1647.       { Array exch get
  1648.       0 1 ardepth
  1649.          { 2 copy 0 put
  1650.          pop
  1651.          } for
  1652.       pop
  1653.       } for
  1654.  
  1655.    /Square
  1656.       {
  1657.       /depth depth 1 add def
  1658.       depth maxdepth eq
  1659.       {
  1660.       Array horz get vert get dup 1 add dup moveto                    %ur
  1661.       Array horz 1 add get vert get dup 1 add lineto             %ul
  1662.       Array horz 1 add get vert 1 add get dup dup lineto         %ll
  1663.       Array horz get vert 1 add get dup 1 add exch lineto             %lr
  1664.       closepath
  1665.       sub
  1666.       dGrey mul AvGrey add
  1667.       setgray
  1668.       fill }
  1669.  
  1670.       {
  1671.       /wd 2 maxdepth depth sub 1 sub exp cvi def
  1672.  
  1673.       Array horz wd 2 mul add get vert wd 2 mul add get
  1674.       Array horz get vert wd 2 mul add get
  1675.       Array horz wd 2 mul add get vert get
  1676.       Array horz get vert get
  1677.  
  1678.       4 copy add add add 4 div
  1679.             rand 50 mod 25 sub height div 2 depth exp div add
  1680.       Array horz wd add get
  1681.             vert wd add 2 index put  pop
  1682.  
  1683.       3 index 2 index add 2 div
  1684.             rand 50 mod 25 sub height div 2 depth exp div add
  1685.       Array horz wd 2 mul add get
  1686.             vert wd add 2 index put   pop
  1687.  
  1688.       3 index 3 index add 2 div
  1689.             rand 50 mod 25 sub height div 2 depth exp div add
  1690.       Array horz wd add get
  1691.             vert wd 2 mul add 2 index put   pop
  1692.  
  1693.       horz 0 eq
  1694.       { 2 index 1 index add 2 div
  1695.             rand 50 mod 25 sub height div 2 depth exp div add
  1696.       Array horz get
  1697.             vert wd add 2 index put    pop
  1698.       } if
  1699.  
  1700.       vert 0 eq
  1701.       { 1 index 1 index add 2 div
  1702.             rand 50 mod 25 sub height div 2 depth exp div add
  1703.       Array horz wd add get
  1704.             vert 2 index put          pop
  1705.       } if
  1706.  
  1707.       pop pop pop pop
  1708.       .5 .5 translate
  1709.       .5 .5 scale
  1710.       Square
  1711.       2 2 scale
  1712.  
  1713.       /horz horz 2 maxdepth depth sub 1 sub exp cvi add def
  1714.       -.5 0 translate
  1715.       .5 .5 scale
  1716.       Square
  1717.       2 2 scale
  1718.       /horz horz 2 maxdepth depth sub 1 sub exp cvi sub def
  1719.  
  1720.       /vert vert 2 maxdepth depth sub 1 sub exp cvi add def
  1721.       .5 -.5 translate
  1722.       .5 .5 scale
  1723.       Square
  1724.       2 2 scale
  1725.       /vert vert 2 maxdepth depth sub 1 sub exp cvi sub def
  1726.  
  1727.       /horz horz 2 maxdepth depth sub 1 sub exp cvi add def
  1728.       /vert vert 2 maxdepth depth sub 1 sub exp cvi add def
  1729.       -.5 0 translate
  1730.       .5 .5 scale
  1731.       Square
  1732.       2 2 scale
  1733.       /horz horz 2 maxdepth depth sub 1 sub exp cvi sub def
  1734.       /vert vert 2 maxdepth depth sub 1 sub exp cvi sub def
  1735.  
  1736.       } ifelse
  1737.       /depth depth 1 sub def
  1738.  
  1739.    } def
  1740.  
  1741.    /dx Bburx Bbllx sub def
  1742.    /dy Bbury Bblly sub def
  1743.    /hyp dx dup mul dy dup mul add sqrt def
  1744.    Bbllx dx 2 div add  Bblly dy 2 div add translate
  1745.    hyp 1.2 mul dup scale
  1746.    45 rotate
  1747.    -.5 -.5 translate
  1748.  
  1749.    currentscreen
  1750.    3 -1 roll
  1751.    pop 120
  1752.    3 1 roll
  1753.    setscreen
  1754.  
  1755.    0 0 0 0
  1756.    Square
  1757.    4{ pop }repeat
  1758.  
  1759.    } bind def
  1760.  
  1761. %@Fill
  1762. /Leaves %Feuilles,5, Nombre(pouce carrΘ)=50, GrisMax=100, GrisMin=0, TailleMax=100, TailleMin=10
  1763.    {
  1764.    /MinSize exch 1 200 InRange def
  1765.    /MaxSize exch MinSize 200 InRange MinSize wDstChck def
  1766.    /MinGrey exch 0 100 InRange def
  1767.    /MaxGrey exch MinGrey 100 InRange def
  1768.    /Number exch 1 250 InRange def
  1769.  
  1770.    eoclip newpath
  1771.    currentscreen
  1772.    3 -1 roll
  1773.    pop 90
  1774.    3 1 roll
  1775.    setscreen
  1776.  
  1777.    /dx Bburx Bbllx sub def
  1778.    /dy Bbury Bblly sub def
  1779.  
  1780.    dx dy mul Number mul 1000000 div cvi
  1781.       {
  1782.       matrix currentmatrix
  1783.  
  1784.       rand dx mod Bbllx add
  1785.       rand dy mod Bblly add
  1786.       translate
  1787.  
  1788.       rand 360 mod
  1789.       rotate
  1790.  
  1791.       MaxSize MinSize eq
  1792.         { Maxsize 10.8 div }
  1793.         { rand MaxSize MinSize sub mod MinSize add 10.8 div } ifelse
  1794.       dup scale
  1795.  
  1796.       17 0 moveto
  1797.       65 -18 106 -13 125 0 curveto
  1798.       106 13  65  18  17 0 curveto
  1799.       gsave
  1800.       MaxGrey MinGrey eq
  1801.         { MaxGrey 100 div }
  1802.         { rand MaxGrey MinGrey sub mod MinGrey add 100 div } ifelse
  1803.       setgray
  1804.       fill
  1805.       grestore
  1806.       0.3 setlinewidth
  1807.       0 setgray
  1808.       stroke
  1809.  
  1810.       setmatrix
  1811.  
  1812.       } repeat
  1813.  
  1814.    } bind def
  1815.  
  1816. %@Fill
  1817. /Mesh %Mailles,5, LinΘature=6, TailleCarrΘ(%)=80, OmbreBasGauche=3, OmbreHautDroit=15, GrisPremierplan=100
  1818.    {
  1819.    /ForegroundGray exch 0 100 InRange def
  1820.    /Shadow2 exch 0 100 InRange def
  1821.    /Shadow1 exch 0 100 InRange def
  1822.    /SquareSize exch 1 100 InRange def
  1823.    /Frequency exch 1 25 InRange def
  1824.  
  1825.    /newfont 10 dict def
  1826.    newfont begin
  1827.  
  1828.    /FontMatrix [1         0
  1829.                 0         1
  1830.                 0         0] def
  1831.    /FontType 3 def
  1832.    /FontBBox [0 0 1 1] def
  1833.    /Encoding 256 array def
  1834.    0 1 255 {Encoding exch /.notdef put} for
  1835.  
  1836.    /BuildChar
  1837.      { 1  0
  1838.        -0.1 -0.1 1.1 1.1
  1839.        setcachedevice
  1840.        pop begin
  1841.  
  1842.        0 setlinejoin
  1843.  
  1844.        SquareSize 100 div dup scale
  1845.        0 0 moveto
  1846.        1 0 lineto
  1847.        1 1 lineto
  1848.        0 1 lineto
  1849.        closepath
  1850.  
  1851.        Shadow1 100 div
  1852.        1 Shadow2 100 div sub
  1853.        1 index dup moveto
  1854.        1 index 1 index lineto
  1855.        dup dup lineto
  1856.        dup 2 index lineto
  1857.        closepath
  1858.        2{pop}repeat
  1859.        fill
  1860.  
  1861.        end
  1862.      } def
  1863.    end
  1864.  
  1865.    /pntsize 1000 Frequency div def
  1866.  
  1867.    /FillFont newfont definefont pop
  1868.    /FillFont findfont pntsize scalefont setfont
  1869.  
  1870.    eoclip newpath
  1871.  
  1872.    ForegroundGray 100 div 1 exch sub setgray
  1873.  
  1874.    Bblly pntsize Bbury
  1875.      { Bbllx exch moveto
  1876.        { (a) show
  1877.          currentpoint
  1878.          pop Bburx gt
  1879.          {exit} if
  1880.        } loop
  1881.      } for
  1882.    } bind def
  1883.  
  1884. %@Fill
  1885. /Motifs %Motifs,4, Motif=1, LinΘature=2, Espacement(%)=100, GrisPremierplan=100
  1886.    {
  1887.    /ForegroundGray exch 0 100 InRange def
  1888.    /Spacing exch 1 300 InRange def
  1889.    /Frequency exch 1 25 InRange def
  1890.    /Character exch 1 8 InRange def
  1891.  
  1892.    /str 1 string def
  1893.    str 0 Character put
  1894.  
  1895.    /newfont 10 dict def
  1896.    newfont begin
  1897.  
  1898.    /FontMatrix [.001                0
  1899.                 0                   .001
  1900.                 0                   0] def
  1901.    /FontType 3 def
  1902.    /FontBBox [0 0 500 1000] def
  1903.  
  1904.    /Encoding 256 array def
  1905.    0 1 255 {Encoding exch /.notdef put} for
  1906.    Encoding  1 /CanadianFlag put
  1907.    Encoding  2 /Corels put
  1908.    Encoding  3 /Globe put
  1909.    Encoding  4 /CubeSolid put
  1910.    Encoding  5 /CubeFrame put
  1911.    Encoding  6 /Balls put
  1912.    Encoding  7 /Checkerboard put
  1913.    Encoding  8 /CCCTlogo put
  1914.  
  1915.    /CharProcs 9 dict def
  1916.    CharProcs begin
  1917.    /.notdef {} def
  1918.    /CanadianFlag
  1919.      { 9.6 9.6 scale
  1920.        9 -30 translate
  1921.  
  1922.        -9 60 moveto
  1923.        -9 30 lineto
  1924.        -1 30 lineto
  1925.        -1 60 lineto
  1926.        closepath
  1927.  
  1928.        43 60 moveto
  1929.        43 30 lineto
  1930.        35 30 lineto
  1931.        35 60 lineto
  1932.        closepath
  1933.  
  1934.        17 58 moveto
  1935.        15 54 lineto
  1936.        12 55 lineto
  1937.        14 47 lineto
  1938.        10 51 lineto
  1939.        10 49 lineto
  1940.        05 50 lineto
  1941.        07 45 lineto
  1942.        05 45 lineto
  1943.        12 39 lineto
  1944.        10 37 lineto
  1945.        16.5 38 lineto
  1946.        16.5 32 lineto
  1947.        17.5 32 lineto
  1948.        17.5 38 lineto
  1949.        24 37 lineto
  1950.        22 39 lineto
  1951.        29 45 lineto
  1952.        27 45 lineto
  1953.        29 50 lineto
  1954.        24 49 lineto
  1955.        24 51 lineto
  1956.        20 47 lineto
  1957.        22 55 lineto
  1958.        19 54 lineto
  1959.        closepath
  1960.  
  1961. %       0.3 setlinewidth
  1962. %       stroke
  1963.        fill
  1964.        } def
  1965.    /Corels
  1966.        { 250 250 translate
  1967.        113 113 scale
  1968.  
  1969.        7 { 45 rotate
  1970.          gsave
  1971.          1 2 sqrt div 1 add 0 translate
  1972.          .5 .5 moveto
  1973.          -.5 .5 lineto
  1974.          -.5 -.5 lineto
  1975.          .5 -.5 lineto
  1976.          closepath
  1977.          fill
  1978.          grestore
  1979.          } repeat
  1980.        } def
  1981.    /Globe
  1982.        {
  1983.        250 250 translate
  1984.        250 250 scale
  1985.        0 1 4
  1986.           { matrix currentmatrix exch
  1987.           22.5 mul sin
  1988.           1 scale
  1989.           0 0 1 90 450 arc
  1990.           setmatrix
  1991.           } for
  1992.  
  1993.        -3 1 3
  1994.           { 22.5 mul sin
  1995.           dup
  1996.           dup mul 1 sub neg sqrt
  1997.           dup neg 2 index moveto
  1998.           exch lineto
  1999.           } for
  2000.  
  2001.        .01 setlinewidth
  2002.        stroke
  2003.        } def
  2004.    /CubeSolid
  2005.        {
  2006.        250 250 translate
  2007.        145 145 scale
  2008.        /Rotm
  2009.           { 30 matrix rotate transform
  2010.           exch 3 1 roll
  2011.           30 matrix rotate transform
  2012.           pop exch
  2013.           moveto
  2014.           } bind def
  2015.        /Rotl
  2016.           { 30 matrix rotate transform
  2017.           exch 3 1 roll
  2018.           30 matrix rotate transform
  2019.           pop exch
  2020.           lineto
  2021.           } bind def
  2022.  
  2023.         1  1  1 Rotm
  2024.        -1  1  1 Rotl
  2025.        -1 -1  1 Rotl
  2026.         1 -1  1 Rotl
  2027.        closepath
  2028.  
  2029.        -1  1  1 Rotm
  2030.        -1  1 -1 Rotl
  2031.         1  1 -1 Rotl
  2032.         1 -1 -1 Rotl
  2033.         1 -1  1 Rotl
  2034.  
  2035.         1  1  1 Rotm
  2036.         1  1 -1 Rotl
  2037.  
  2038.        .01 setlinewidth
  2039.        stroke
  2040.        } def
  2041.    /CubeFrame
  2042.        {
  2043.        250 250 translate
  2044.        145 145 scale
  2045.        /Rotm
  2046.           { 30 matrix rotate transform
  2047.           exch 3 1 roll
  2048.           30 matrix rotate transform
  2049.           pop exch
  2050.           moveto
  2051.           } bind def
  2052.        /Rotl
  2053.           { 30 matrix rotate transform
  2054.           exch 3 1 roll
  2055.           30 matrix rotate transform
  2056.           pop exch
  2057.           lineto
  2058.           } bind def
  2059.  
  2060.         1  1  1 Rotm
  2061.        -1  1  1 Rotl
  2062.        -1 -1  1 Rotl
  2063.         1 -1  1 Rotl
  2064.        closepath
  2065.  
  2066.         1  1 -1 Rotm
  2067.        -1  1 -1 Rotl
  2068.        -1 -1 -1 Rotl
  2069.         1 -1 -1 Rotl
  2070.        closepath
  2071.  
  2072.         1  1  1 Rotm
  2073.         1  1 -1 Rotl
  2074.        -1  1  1 Rotm
  2075.        -1  1 -1 Rotl
  2076.        -1 -1  1 Rotm
  2077.        -1 -1 -1 Rotl
  2078.         1 -1  1 Rotm
  2079.         1 -1 -1 Rotl
  2080.  
  2081.        .01 setlinewidth
  2082.        stroke
  2083.        } def
  2084.    /Balls
  2085.        { 250 250 translate
  2086.        225 225 scale
  2087.  
  2088.        0 0 1.1 0 360 arc
  2089.        -0.32  0.55 translate
  2090.        30 rotate
  2091.        1 2 div  1 3 div scale
  2092.        0 0 1.1 360 0 arcn
  2093.        fill
  2094.        } def
  2095.    /Checkerboard
  2096.        { 0 0 moveto
  2097.        500 0 lineto
  2098.        500 500 lineto
  2099.        0 500 lineto
  2100.        closepath
  2101.        fill
  2102.        } def
  2103.    /CCCTlogo
  2104.        {
  2105.        4.8 4.8 scale
  2106.        -21 -26 translate
  2107.  
  2108.        36.4 28.4 moveto
  2109.        70 38 35 196 176.7 arcn
  2110.        35.1 40 35 42 24 41 curveto
  2111.        21 37 24 38 22 32 curveto
  2112.        21 28 25 27 28 28 curveto
  2113.        33 26 32 30 36.4 28.4 curveto
  2114.  
  2115.        36.5 48.2 moveto
  2116.        70 38 35 163.1 144.5 arcn
  2117.        40 59 39 60 36 61 curveto
  2118.        33 63 29 62 27 61 curveto
  2119.        24 58 29 55 26 54 curveto
  2120.        24 53 25 50 25 50 curveto
  2121.        28 47 30 44 36.5 48.2 curveto
  2122.  
  2123.        44.3 61.7 moveto
  2124.        70 38 35 137.3 111.5 arcn
  2125.        56 81 52 75 53 81 curveto
  2126.        52 87 50 81 46 84 curveto
  2127.        37 84 40 80 40 76 curveto
  2128.        42 70 35 73 44.3 61.7 curveto
  2129.  
  2130.        60.8 71.8 moveto
  2131.        70 38 35 105.3 80.0 arcn
  2132.        78 72 78 76 77 80 curveto
  2133.        77 81 80 82 79 83 curveto
  2134.        77 85 74 84 70 85 curveto
  2135.        65 85 69 80 62 80 curveto
  2136.        59 77 61 74 60.8 71.8 curveto
  2137.  
  2138.        97.1 60.1 moveto
  2139.        70 38 35 39.2 66.4 arc
  2140.        81 74 82 78 85 81 curveto
  2141.        91 81 98 84 95 76 curveto
  2142.        98 74 115 77 103 72 curveto
  2143.        101 68 100 61 97.1 60.1 curveto
  2144.  
  2145.        100 56 moveto
  2146.        70 38 35 31 11.6 arcn
  2147.        113 42 114 49 118 50 curveto
  2148.        115 57 123 56 120 60 curveto
  2149.        115 60 116 64 109 63 curveto
  2150.        104 62 107 57 100 56 curveto
  2151.  
  2152.        105 39 moveto
  2153.        70 38 35 1.6 -14.8 arcn
  2154.        107 27 110 28 112 27 curveto
  2155.        115 27 111 31 118 32 curveto
  2156.        120 33 125 33 122 36 curveto
  2157.        121 37 119 38 117 39 curveto
  2158.        113 46 112 39 105 39 curveto
  2159.  
  2160.        fill
  2161.     } def
  2162.    end
  2163.  
  2164.    /BuildChar
  2165.      {Spacing 100 div 500 mul  dup
  2166.       -0.1 -0.1 500.1 1000.1
  2167.       setcachedevice
  2168.       exch begin
  2169.       Encoding exch get
  2170.       CharProcs exch get
  2171.       end
  2172.       exec
  2173.      }def
  2174.    end
  2175.  
  2176.    /pntsize 100000 Frequency div Spacing div def
  2177.  
  2178.    /FillFont newfont definefont pop
  2179.    /FillFont findfont pntsize scalefont setfont
  2180.  
  2181.    /increment Spacing 100 div pntsize mul def
  2182.  
  2183.    eoclip newpath
  2184.    ForegroundGray 100 div 1 exch sub setgray
  2185.    Bblly increment Bbury
  2186.      { Bbllx 1 index moveto
  2187.        { str show
  2188.          currentpoint
  2189.          dup 3 index sub
  2190.          increment 2.1 div gt { increment sub } if
  2191.          1 index Bburx gt
  2192.          {pop pop pop exit} if
  2193.          moveto
  2194.        } loop
  2195.      } for
  2196.    } bind def
  2197.  
  2198. %@Fill
  2199. /Octagons %Octogones,4, LinΘature=8, LargeurLigne=5, GrisPremierplan=100, GrisArriΦreplan=0
  2200.    {
  2201.    /BackgroundGray exch -1 100 InRange def
  2202.    /ForegroundGray exch 0 100 InRange def
  2203.    /Linewidth      exch 0 100 InRange def
  2204.    /Frequency      exch 2 100 InRange def
  2205.  
  2206.    /newfont 10 dict def
  2207.    newfont begin
  2208.  
  2209.    /FontMatrix [1 2 sqrt 1 add div  0
  2210.                 0                   1 2 sqrt 1 add div
  2211.                 0                   0] def
  2212.    /FontType 3 def
  2213.    /FontBBox [0 0 2 sqrt 1 add 2 sqrt 1 add] def
  2214.    /Encoding 256 array def
  2215.    0 1 255 {Encoding exch /.notdef put} for
  2216.  
  2217.    /BuildChar
  2218.      { 2 sqrt 1 add  0
  2219.        -0.5 -0.5 2 sqrt 1.5 add 2 sqrt 1.5 add
  2220.        setcachedevice
  2221.        pop begin
  2222.  
  2223.        1 2 sqrt div  0 moveto
  2224.        1 2 sqrt div 1 add  0 lineto
  2225.        2 sqrt 1 add  1 2 sqrt div lineto
  2226.        2 sqrt 1 add  1 2 sqrt div 1 add lineto
  2227.        1 2 sqrt div 1 add  2 sqrt 1 add lineto
  2228.        1 2 sqrt div  2 sqrt 1 add lineto
  2229.        0  1 2 sqrt div 1 add lineto
  2230.        0  1 2 sqrt div lineto
  2231.        closepath
  2232.  
  2233.        Linewidth pntsize div 2 sqrt 1 add mul setlinewidth
  2234.        stroke
  2235.  
  2236.       end
  2237.      } def
  2238.    end
  2239.  
  2240.    /pntsize 1000 Frequency div def
  2241.    /FillFont newfont definefont pop
  2242.    /FillFont findfont pntsize scalefont setfont
  2243.  
  2244.    eoclip
  2245.    BackgroundGray 0 ge
  2246.       { BackgroundGray 100 div 1 exch sub setgray fill }
  2247.       { newpath } ifelse
  2248.  
  2249.    ForegroundGray 100 div 1 exch sub setgray
  2250.  
  2251.    Bblly pntsize Bbury
  2252.      { Bbllx pntsize Bburx
  2253.        { 1 index moveto
  2254.        (a) show
  2255.        } for
  2256.      pop
  2257.      } for
  2258.    } bind def
  2259.  
  2260. %@Fill
  2261. /Patio %Patio,4, LinΘature=8, LargeurLigne=5, GrisPremierplan=100, GrisArriΦreplan=0
  2262.    {
  2263.    /BackgroundGray exch -1 100 InRange def
  2264.    /ForegroundGray exch 0 100 InRange def
  2265.    /Linewidth      exch 0 100 InRange def
  2266.    /Frequency      exch 2 100 InRange def
  2267.  
  2268.    /newfont 10 dict def
  2269.    newfont begin
  2270.  
  2271.    /FontMatrix [2 7 div             0
  2272.                 0                   2 7 div
  2273.                 0                   0] def
  2274.    /FontType 3 def
  2275.    /FontBBox [0 0 3 sqrt 2 mul  7 2 div] def
  2276.    /Encoding 256 array def
  2277.    0 1 255 {Encoding exch /.notdef put} for
  2278.  
  2279.    /BuildChar
  2280.      { 3 sqrt 3 mul 2 div  3 2 div
  2281.        -0.5 -0.5 3 sqrt 2 mul 0.5 add 7 2 div 0.5 add
  2282.        setcachedevice
  2283.        pop begin
  2284.  
  2285.        3 sqrt  3 2 div  translate
  2286.        3 sqrt 2 div  1 2 div  moveto
  2287.        3 { 120 rotate
  2288.            3 sqrt 2 div  -3 2 div lineto
  2289.            3 sqrt  -1 lineto
  2290.            3 sqrt  0 lineto
  2291.            3 sqrt 2 div  1 2 div lineto
  2292.          } repeat
  2293.  
  2294.        Linewidth pntsize div 7 2 div mul setlinewidth
  2295.        stroke
  2296.  
  2297.        end
  2298.      } def
  2299.    end
  2300.  
  2301.    /pntsize 1250 Frequency div def
  2302.  
  2303.    /FillFont newfont definefont pop
  2304.    /FillFont findfont pntsize scalefont setfont
  2305.  
  2306.    /Pointsize pntsize 6 mul 7 div def
  2307.  
  2308.    eoclip
  2309.    BackgroundGray 0 ge
  2310.       { BackgroundGray 100 div 1 exch sub setgray fill }
  2311.       { newpath } ifelse
  2312.  
  2313.    ForegroundGray 100 div 1 exch sub setgray
  2314.  
  2315.    Bblly Pointsize Bbury
  2316.      { Bbllx 1 index moveto
  2317.        { (a) show
  2318.          currentpoint
  2319.          dup 3 index sub
  2320.          Pointsize 2 div gt { Pointsize sub } if
  2321.          1 index Bburx gt
  2322.          {pop pop pop exit} if
  2323.          moveto
  2324.        } loop
  2325.      } for
  2326.    } bind def
  2327.  
  2328. %@Fill
  2329. /Rectangles %Rectangles,5, Zone=100, Nombre=50, LargeurLigne=5, Gris=0, RΘpartitionAlΘatoire=0
  2330.    {
  2331.    srand
  2332.    /Grey exch 0 100 InRange def
  2333.    /Linewidth exch 0 100 InRange def
  2334.    /Number exch 1 200 InRange def
  2335.    /area exch 10 300 InRange def
  2336.  
  2337.    /dx Bburx Bbllx sub 2 mul def
  2338.    /dy Bbury Bblly sub 2 mul def
  2339.    /Area area 10000 mul def
  2340.  
  2341.    eoclip newpath
  2342.  
  2343.    Linewidth setlinewidth
  2344.    Bbllx dx 2 div sub  Bblly dy 2 div sub  translate
  2345.  
  2346. %   Area log
  2347.    Number {
  2348.       rand dx mod rand dy mod moveto
  2349. %      rand 180 mod 90 sub 100 div dup  dup mul 1 exch sub sqrt
  2350. %      exch atan 180 div 1 index mul 10 exch exp
  2351.       rand Area mod rand Area mod mul sqrt sqrt
  2352.       dup 0 rlineto
  2353.       0 Area 2 index div rlineto
  2354.       dup neg 0 rlineto
  2355.       closepath
  2356.       pop
  2357.  
  2358.       gsave
  2359.       Grey 100 div 1 exch sub setgray
  2360.       fill
  2361.       grestore
  2362.       0 setgray
  2363.       stroke
  2364.       } repeat
  2365.  
  2366.    } bind def
  2367.  
  2368. %@Fill
  2369. /Reptiles %Reptiles,5, LinΘature=4, Gris1=60, Gris2=30, Gris3=0, LargeurLigne=8
  2370. {
  2371.   /LineWidth exch 0 250 InRange def
  2372.   /Gray3 exch 0 100 InRange 100 div def
  2373.   /Gray2 exch -1 100 InRange 100 div def
  2374.   /Gray1 exch -1 100 InRange 100 div def
  2375.   /Frequency exch 1 100 InRange def
  2376.  
  2377.   /newfont 10 dict def
  2378.   newfont begin
  2379.  
  2380.   /FontMatrix [2 7 div             0
  2381.                0                   2 7 div
  2382.                0                   0] def
  2383.   /FontType 3 def
  2384.   /FontBBox [-1.73 -1.86 2.36 2.0] def
  2385.   /Encoding 256 array def
  2386.   0 1 255 {Encoding exch /.notdef put} for
  2387.   Encoding 97 /ReptilesStroked put
  2388.   Encoding 98 /ReptileFilled put
  2389.  
  2390.   /CharProcs 3 dict def
  2391.   CharProcs begin
  2392.   /.notdef {} def
  2393.   /ReptilesStroked
  2394.   {
  2395.     %3 sqrt  3 2 div  translate
  2396.  
  2397.     3 sqrt 2 div  1 2 div  moveto
  2398.     3
  2399.     {
  2400.       120 rotate
  2401.  
  2402.       0     0    moveto
  2403.       0.32 -0.40 lineto
  2404.       0.32 -0.48 lineto
  2405.       0    -0.72 lineto
  2406.  
  2407.       0.05 -1.03 moveto
  2408.       0.4  -0.76 lineto
  2409.       0.84 -0.84 lineto
  2410.       0.5  -0.96 lineto
  2411.       0.31 -1.18 lineto
  2412.  
  2413.       0.87 -1.5  moveto
  2414.       0.58 -1.28 lineto
  2415.       0.8  -1.14 lineto
  2416.       0.94 -1.18 lineto
  2417.       1.24 -1.08 lineto
  2418.       1.42 -1.18 lineto
  2419.  
  2420.       1.68 -1.02 moveto
  2421.       1.52 -0.84 lineto
  2422.       1.64 -0.66 lineto
  2423.       1.73 -0.36 lineto
  2424.  
  2425.       1.73  0    moveto
  2426.       1.41 -0.26 lineto
  2427.       1.32 -0.49 lineto
  2428.       1.06 -0.24 lineto
  2429.       1.42  0.18 lineto
  2430.  
  2431.       0.87  0.57 moveto
  2432.       0.87  0.26 lineto
  2433.       0.99  0.26 lineto
  2434.       1.05  0.12 lineto
  2435.       0.82 -0.07 lineto
  2436.       0.68 -0.07 lineto
  2437.       0.62  0.36 lineto
  2438.  
  2439.  
  2440.       3 sqrt 2 div  1 2 div moveto
  2441.  
  2442.     } repeat
  2443.  
  2444.     LineWidth Pointsize div 7 2 div mul setlinewidth
  2445.     stroke
  2446.  
  2447.   } def
  2448.   /ReptileFilled
  2449.   {
  2450.     0     0    moveto
  2451.     0.32 -0.40 lineto
  2452.     0.32 -0.48 lineto
  2453.     0    -0.72 lineto
  2454.  
  2455.    -0.40 -0.55 lineto
  2456.    -0.47 -0.68 lineto
  2457.    -0.42 -0.97 lineto
  2458.    -0.27 -0.99 lineto
  2459.    -0.21 -0.88 lineto
  2460.  
  2461.     0.05 -1.03 lineto
  2462.     0.4  -0.76 lineto
  2463.     0.84 -0.84 lineto
  2464.     0.5  -0.96 lineto
  2465.     0.31 -1.18 lineto
  2466.  
  2467.     0.32 -1.39 lineto
  2468.     0.55 -1.60 lineto
  2469.     0.59 -1.74 lineto
  2470.     0.82 -1.86 lineto
  2471.  
  2472.     0.87 -1.5  lineto
  2473.     0.58 -1.28 lineto
  2474.     0.8  -1.14 lineto
  2475.     0.94 -1.18 lineto
  2476.     1.24 -1.08 lineto
  2477.     1.42 -1.18 lineto
  2478.     1.52 -1.45 lineto
  2479.     1.45 -1.81 lineto
  2480.     1.74 -1.47 lineto
  2481.     1.68 -1.02 lineto
  2482.     1.52 -0.84 lineto
  2483.     1.64 -0.66 lineto
  2484.     1.73 -0.36 lineto
  2485.     2.28 -0.46 lineto
  2486.     2.36 -0.11 lineto
  2487.     2.12 -0.15 lineto
  2488.     1.73  0    lineto
  2489.     1.41 -0.26 lineto
  2490.     1.32 -0.49 lineto
  2491.     1.06 -0.24 lineto
  2492.     1.42  0.18 lineto
  2493.     1.21  0.41 lineto
  2494.     1.11  0.60 lineto
  2495.  
  2496.     0.87  0.57 lineto
  2497.     0.87  0.26 lineto
  2498.     0.99  0.26 lineto
  2499.     1.05  0.12 lineto
  2500.     0.82 -0.07 lineto
  2501.     0.68 -0.07 lineto
  2502.     0.62  0.36 lineto
  2503.     0.26  0.52 lineto
  2504.     0.19  0.48 lineto
  2505.     closepath
  2506.     fill
  2507.   } def
  2508.   end
  2509.  
  2510.   /BuildChar
  2511.   {
  2512.     3 sqrt 3 mul 2 div  3 2 div
  2513.     -1.83 -1.96 2.46 2.1
  2514.     setcachedevice
  2515.     exch begin
  2516.     Encoding exch get
  2517.     CharProcs exch get
  2518.     end
  2519.     exec
  2520.   } def
  2521.   end
  2522.  
  2523.   /Pointsize 2000 Frequency div def
  2524.  
  2525.   /FillFont newfont definefont pop
  2526.   /FillFont findfont Pointsize scalefont setfont
  2527.  
  2528.   /pntsize Pointsize 6 mul 7 div def
  2529.   /HeightDiff Pointsize 2 mul 7 div .49 mul def
  2530.  
  2531.   eoclip newpath
  2532.  
  2533.   currentscreen
  2534.   3 -1 roll
  2535.   pop 120
  2536.   3 1 roll
  2537.   setscreen
  2538.  
  2539.   Bblly pntsize Bbury pntsize add HeightDiff add
  2540.   {
  2541.     Bbllx 1 index moveto
  2542.     {
  2543.       currentpoint
  2544.       1 index exch
  2545.  
  2546.       2 copy 2 copy translate
  2547.       240 rotate
  2548.       Gray1 0 ge
  2549.       { Gray1 1 exch sub setgray
  2550.         (b) show
  2551.       } if
  2552.       0 0 moveto
  2553.       -240 rotate
  2554.       neg exch neg exch translate
  2555.  
  2556.       2 copy translate
  2557.       120 rotate
  2558.       Gray2 0 ge
  2559.       { Gray2 1 exch sub setgray
  2560.         (b) show
  2561.       } if
  2562.       0 0 moveto
  2563.       -120 rotate
  2564.       neg exch neg exch translate
  2565.  
  2566.       Gray3 1 exch sub setgray
  2567.       (b) show
  2568.  
  2569.       currentpoint
  2570.       dup 4 index sub
  2571.       pntsize 2.1 div gt { pntsize sub } if
  2572.       3 -1 roll Bburx gt
  2573.       {pop pop pop exit} if
  2574.       moveto
  2575.     } loop
  2576.   } for
  2577.  
  2578.   LineWidth 0 gt
  2579.   {
  2580.     0 setgray
  2581.     Bblly pntsize Bbury pntsize add
  2582.     {
  2583.       Bbllx 1 index moveto
  2584.       {
  2585.         (a) show
  2586.         currentpoint
  2587.         dup 3 index sub
  2588.         pntsize 2.1 div gt { pntsize sub } if
  2589.         1 index Bburx gt
  2590.         {pop pop pop exit} if
  2591.         moveto
  2592.       } loop
  2593.     } for
  2594.   } if
  2595. } bind def
  2596.  
  2597. %@Fill
  2598. /SpiderWeb %Toiles d'araignΘe,5, LargeurLigne=5, SΘparation=300, AngleMax=40, AngleMin=10, RΘpartitionAlΘatoire=0
  2599.    { srand
  2600.    /MinAng exch 2 90 InRange def
  2601.    /MaxAng exch MinAng 90 InRange MinAng wDstChck def
  2602.    /Sep exch 10 500 InRange def
  2603.    /Linewidth exch 0 100 InRange def
  2604.  
  2605.    eoclip
  2606.    newpath
  2607.  
  2608.    /dx Bburx Bbllx sub def
  2609.    /dy Bbury Bblly sub def
  2610.    /hyp dx dup mul dy dup mul add sqrt def
  2611.    /DifAng MaxAng MinAng sub def
  2612.  
  2613.    Bbllx Bblly translate
  2614.    dx 2 div dy 2 div translate
  2615.  
  2616.    /theta 0 def
  2617.    /dtheta 0 def
  2618.  
  2619.    {  0 0 moveto
  2620.  
  2621.       /theta theta dtheta add def
  2622.       theta 360 ge
  2623.         { exit } if
  2624.       /dtheta rand DifAng mod MinAng add def
  2625.       theta dtheta add 350 gt
  2626.         { /dtheta 360 theta sub def } if
  2627.  
  2628.       hyp theta cos mul hyp theta sin mul lineto
  2629.  
  2630.       0 Sep hyp
  2631.          {
  2632.          dup theta cos mul
  2633.          1 index theta sin mul
  2634.          moveto
  2635.  
  2636.          dup theta dtheta add cos theta cos add mul
  2637.          1 index theta dtheta add sin theta sin add mul
  2638.          2 index
  2639.          theta 180 add dtheta add
  2640.          theta 180 add
  2641.          arcn
  2642.  
  2643.          pop
  2644.          } for
  2645.       Linewidth setlinewidth
  2646.       stroke
  2647.       } loop
  2648.    } bind def
  2649.  
  2650. %@Fill
  2651. /Spirals %Spirales,4, Dimensions=150, LargeurLigne=5, GrisPremierplan=100, GrisArriΦreplan=0
  2652.    {
  2653.    /BackgroundGrey exch -1 100 InRange def
  2654.    /ForegroundGray exch 0 100 InRange def
  2655.    /Linewidth exch 0 100 InRange def
  2656.    /Size exch 10 500 InRange def
  2657.  
  2658.    eoclip
  2659.    BackgroundGrey 0 ge
  2660.       { BackgroundGrey 100 div 1 exch sub setgray fill }
  2661.       { newpath } ifelse
  2662.  
  2663.    /cx Bburx Bbllx add 2 div def
  2664.    /cy Bbury Bblly add 2 div def
  2665.    /pntsize2 Size 2 div def
  2666.    /cy2 cy pntsize2 add def
  2667.    /hyp Bburx Bbllx sub dup mul
  2668.         Bbury Bblly sub dup mul
  2669.         add sqrt 2 div def
  2670.  
  2671.    ForegroundGray 100 div 1 exch sub setgray
  2672.  
  2673.    Linewidth setlinewidth
  2674.    0 Size hyp
  2675.       { cx cy 2 index 90 270 arc
  2676.         cx cy2 2 index pntsize2 add -90 90 arc
  2677.         pop
  2678.       } for
  2679.    stroke
  2680.    } bind def
  2681.  
  2682. %@Fill
  2683. /Spokes %Rayons de roues,5, Nombre=120, LargeurLigne=5, Horizontal=0, Vertical=0, GrisPremierplan=100
  2684.     { %def -- Fill function that fills with spokes
  2685.         /ForegroundGray exch 0 100 InRange def
  2686.     /wY exch 0 100 InRange def
  2687.     /wX exch 0 100 InRange def
  2688.     /LineWidth exch 0 100 InRange def
  2689.     /Number exch 4 360 InRange def
  2690.  
  2691.         eoclip
  2692.         newpath
  2693.         /Flen Bburx Bbllx sub dup mul Bbury Bblly sub dup mul add sqrt def
  2694.         Bbllx Bblly translate
  2695.     Bburx Bbllx sub wX mul 100 div  Bbury Bblly sub wY mul 100 div translate
  2696.  
  2697.     360 Number div
  2698.         Number {
  2699.            0 0 moveto
  2700.            Flen 0 lineto
  2701.            dup rotate
  2702.            } repeat
  2703.         pop
  2704.         ForegroundGray 100 div 1 exch sub setgray
  2705.     LineWidth setlinewidth
  2706.     stroke
  2707.         } bind def
  2708.  
  2709. %@Fill
  2710. /Squares %CarrΘs,4, LinΘature=8, LargeurLigne=5, GrisPremierplan=100, GrisArriΦreplan=0
  2711.    {
  2712.    /BackgroundGray exch -1 100 InRange def
  2713.    /ForegroundGray exch 0 100 InRange def
  2714.    /Linewidth      exch 0 100 InRange def
  2715.    /Frequency      exch 2 100 InRange def
  2716.  
  2717.    /newfont 10 dict def
  2718.    newfont begin
  2719.  
  2720.    /FontMatrix [1  0  0
  2721.                 1  0  0] def
  2722.    /FontType 3 def
  2723.    /FontBBox [0 0 1 1] def
  2724.    /Encoding 256 array def
  2725.    0 1 255 {Encoding exch /.notdef put} for
  2726.  
  2727.    /BuildChar
  2728.      { 1  0
  2729.        -0.1 -0.1 1.1 1.1
  2730.        setcachedevice
  2731.        pop begin
  2732.  
  2733.        0 0 moveto
  2734.        0 1 lineto
  2735.        1 1 lineto
  2736.        1 0 lineto
  2737.  
  2738.        Linewidth pntsize div setlinewidth
  2739.        stroke
  2740.  
  2741.       end
  2742.      } def
  2743.    end
  2744.  
  2745.    /pntsize 1000 Frequency div def
  2746.  
  2747.    /FillFont newfont definefont pop
  2748.    /FillFont findfont pntsize scalefont setfont
  2749.  
  2750.    eoclip
  2751.    BackgroundGray 0 ge
  2752.       { BackgroundGray 100 div 1 exch sub setgray fill }
  2753.       { newpath } ifelse
  2754.  
  2755.    ForegroundGray 100 div 1 exch sub setgray
  2756.  
  2757.    Bblly pntsize Bbury
  2758.      { Bbllx exch moveto
  2759.        { (a) show
  2760.          currentpoint
  2761.          pop Bburx gt
  2762.          {exit} if
  2763.        } loop
  2764.      } for
  2765.    } bind def
  2766.  
  2767. %@Fill
  2768. /StarOfDavid %Etoiles de David,4, LinΘature=8, LargeurLigne=5, GrisPremierplan=100, GrisArriΦreplan=0
  2769.    {
  2770.    /BackgroundGray exch -1 100 InRange def
  2771.    /ForegroundGray exch 0 100 InRange def
  2772.    /Linewidth      exch 0 100 InRange def
  2773.    /Frequency      exch 2 100 InRange def
  2774.  
  2775.    /newfont 10 dict def
  2776.    newfont begin
  2777.  
  2778.    /FontMatrix [1 3 sqrt 2 mul div  0
  2779.                 0                   1 3 sqrt 2 mul div
  2780.                 0                   0] def
  2781.    /FontType 3 def
  2782.    /FontBBox [0 0 2 3 sqrt 2 mul] def
  2783.    /Encoding 256 array def
  2784.    0 1 255 {Encoding exch /.notdef put} for
  2785.  
  2786.    /BuildChar
  2787.      { 1  3 sqrt
  2788.        -0.1 -0.1 2.1 3 sqrt 2 mul 0.1 add
  2789.        setcachedevice
  2790.        pop begin
  2791.  
  2792.        1 2 div  0 moveto
  2793.        3 2 div  0 lineto
  2794.        2  3 sqrt 2 div lineto
  2795.        3 2 div  3 sqrt lineto
  2796.        1 2 div  3 sqrt lineto
  2797.        0  3 sqrt 2 div lineto
  2798.        closepath
  2799.  
  2800.        Linewidth pntsize div 3 sqrt 2 mul mul setlinewidth
  2801.        stroke
  2802.  
  2803.       end
  2804.      } def
  2805.    end
  2806.  
  2807.    /pntsize 1732 Frequency div def
  2808.  
  2809.    /FillFont newfont definefont pop
  2810.    /FillFont findfont pntsize scalefont setfont
  2811.  
  2812.    eoclip
  2813.    BackgroundGray 0 ge
  2814.       { BackgroundGray 100 div 1 exch sub setgray fill }
  2815.       { newpath } ifelse
  2816.  
  2817.    ForegroundGray 100 div 1 exch sub setgray
  2818.  
  2819.    Bblly pntsize Bbury
  2820.      { Bbllx pntsize sub 1 index moveto
  2821.        { (a) show
  2822.          currentpoint
  2823.          dup 3 index sub
  2824.          pntsize 2.1 div gt { pntsize sub } if
  2825.          1 index Bburx gt
  2826.          {pop pop pop exit} if
  2827.          moveto
  2828.        } loop
  2829.      } for
  2830.    } bind def
  2831.  
  2832. %@Fill
  2833. /StarOfDavid %Etoiles de David,4, LinΘature=8, LargeurLigne=5, GrisPremierplan=100, GrisArriΦreplan=0
  2834.    { srand
  2835.    /MinSize exch 1 1000 InRange def
  2836.    /MaxSize exch MinSize 1000 InRange def
  2837.    /Number exch 1 2000 InRange def
  2838.  
  2839.    /newfont 10 dict def
  2840.    newfont begin
  2841.  
  2842.    /FontMatrix [1  0  0
  2843.                 1  0  0] def
  2844.    /FontType 3 def
  2845.    /FontBBox [0 0 1 1] def
  2846.    /Encoding 256 array def
  2847.    0 1 255 {Encoding exch /.notdef put} for
  2848.  
  2849.    /BuildChar
  2850.      { 1  0
  2851.        -0.1 -0.1 1.1 1.1
  2852.        setcachedevice
  2853.        pop begin
  2854.  
  2855.        1 .5 moveto
  2856.        .5 .5 .5 0 360 arc
  2857.        fill
  2858.  
  2859.        end
  2860.      } def
  2861.    end
  2862.  
  2863.    /FillFont newfont definefont pop
  2864.    /FillFont findfont 2 scalefont setfont
  2865.  
  2866.    /dx Bburx Bbllx sub def
  2867.    /dy Bbury Bblly sub def
  2868.  
  2869.    eoclip
  2870.    0 setgray
  2871.    fill
  2872.  
  2873.    1 setgray
  2874.    /mtx matrix currentmatrix def
  2875.    dx dy mul Number mul 100000 div cvi
  2876.       { rand dx mod Bbllx add
  2877.       rand dy mod Bblly add
  2878.       moveto
  2879.       MaxSize rand  MaxSize MinSize div cvi  mod 1 add div 10 div
  2880.       dup scale
  2881.       (a) show
  2882.       mtx setmatrix
  2883.       } repeat
  2884.  
  2885.    } bind def
  2886.  
  2887. %@Fill
  2888. /StarShapes %Formes d'Θtoiles,5, Points=5, LinΘature=2, Espacement=100, Angle=36, Gris=100
  2889.    {
  2890.    /Grey exch 0 100 InRange def
  2891.    /Theta exch 1 90 InRange def
  2892.    /Spacing exch 1 300 InRange def
  2893.    /Frequency exch 1 25 InRange def
  2894.    /Points exch 1 15 InRange def
  2895.  
  2896.    /str 1 string def
  2897.    str 0 Points put
  2898.  
  2899.    /newfont 10 dict def
  2900.    newfont begin
  2901.  
  2902.    /FontMatrix [.001                0
  2903.                 0                   .001
  2904.                 0                   0] def
  2905.    /FontType 3 def
  2906.    /FontBBox [0 0 500 1000] def
  2907.  
  2908.    /Encoding 256 array def
  2909.    0 1 255 {Encoding exch /.notdef put} for
  2910.  
  2911.    /BuildChar
  2912.      {Spacing 100 div 500 mul  dup
  2913.       -0.1 -0.1 500.1 1000.1
  2914.       setcachedevice
  2915.       exch begin
  2916.  
  2917.       250 250 translate
  2918.       250 250 scale
  2919.       90 rotate
  2920.  
  2921.       dup
  2922.       180 exch div dup sin exch cos div
  2923.       Theta 2 div dup sin exch cos div
  2924.  
  2925.       1 0 moveto
  2926.       2 index
  2927.          {
  2928.          360 3 index div rotate
  2929.          dup dup 3 index add div
  2930.          dup 3 index mul neg
  2931.          lineto
  2932.          1 0 lineto
  2933.          } repeat
  2934.       closepath
  2935.  
  2936.       fill
  2937.       pop pop pop
  2938.  
  2939.       end
  2940.      }def
  2941.    end
  2942.  
  2943.    /pntsize 100000 Frequency div Spacing div def
  2944.  
  2945.    /FillFont newfont definefont pop
  2946.    /FillFont findfont pntsize scalefont setfont
  2947.  
  2948.    /increment Spacing 100 div pntsize mul def
  2949.  
  2950.    eoclip newpath
  2951.  
  2952.    Grey 100 div 1 exch sub setgray
  2953.    Bblly increment Bbury
  2954.      { Bbllx 1 index moveto
  2955.        { str show
  2956.          currentpoint
  2957.          dup 3 index sub
  2958.          increment 2.1 div gt { increment sub } if
  2959.          1 index Bburx gt
  2960.          {pop pop pop exit} if
  2961.          moveto
  2962.        } loop
  2963.      } for
  2964.    } bind def
  2965.  
  2966. %@Fill
  2967. /StoneWall %Mur de pierres,4, LinΘature=15, GrisMax=100, GrisMin=0, LargeurLigne=5
  2968.    {
  2969.    /Linewidth exch 0 100 InRange def
  2970.    /MinGrey exch 0 100 InRange def
  2971.    /MaxGrey exch MinGrey 100 InRange def
  2972.    /Frequency exch 1 50 InRange def
  2973.  
  2974.    /DifGrey MaxGrey MinGrey sub def
  2975.    DifGrey 0 eq
  2976.       { /DifGrey 1 def
  2977.       } if
  2978.    Linewidth Frequency mul 250 div setlinewidth
  2979.    eoclip newpath
  2980.    0 srand
  2981.  
  2982.    currentscreen
  2983.    3 -1 roll
  2984.    pop 100
  2985.    3 1 roll
  2986.    setscreen
  2987.  
  2988.    /dy Bbury Bblly sub def
  2989.    /dx Bburx Bbllx sub def
  2990.    Bbllx Bbury translate
  2991.    250 Frequency div dup scale
  2992.  
  2993.    dy 920 div Frequency mul cvi {
  2994.       0 0 moveto
  2995.       /x0 0 def
  2996.       /y0 0 def
  2997.       /x1 0 def
  2998.       /y1 0 def
  2999.       /x2 0 def
  3000.       /y2 0 def
  3001.       /x3 0 def
  3002.       /y3 0 def
  3003.       0 5 dx 200 div Frequency mul
  3004.          { rand 50 mod 25 div 1 sub add
  3005.          x3 y3 moveto
  3006.          x2 y2 x1 y1 x0 y0 curveto
  3007.          dup rand 30 mod 15 div neg 2 sub
  3008.          2 copy
  3009.          /y0 exch def
  3010.          /x0 exch def
  3011.          lineto
  3012.          dup rand 50 mod 10 div 2.5 sub add rand 50 mod 10 div neg
  3013.          1 index rand 50 mod 10 div
  3014.          4 index rand 30 mod 15 div 2 add
  3015.          6 copy
  3016.          /y3 exch def
  3017.          /x3 exch def
  3018.          /y2 exch def
  3019.          /x2 exch def
  3020.          /y1 exch def
  3021.          /x1 exch def
  3022.          curveto
  3023.          pop
  3024.          closepath
  3025.          gsave
  3026.          rand DifGrey mod MinGrey add 100 div 1 exch sub setgray fill
  3027.          grestore
  3028.          0 setgray stroke
  3029.          } for
  3030.       0 -4 translate
  3031.       } repeat
  3032.    } bind def
  3033.  
  3034. %@Fill
  3035. /Text %Texte,5, Police=1, CaractΦre=67, LinΘature=4, Espacement=100, GrisArriΦreplan=0
  3036.    {
  3037.    /BackGrey exch -1 100 InRange def
  3038.    /Spacing exch 30 300 InRange def
  3039.    /Frequency exch 1 50 InRange def
  3040.    /Character exch 33 255 InRange def
  3041.    /Font exch 1 35 InRange def
  3042.  
  3043.    /pntsize 100000 Frequency div Spacing div def
  3044.    Font  1 eq { /Times-Roman } if
  3045.    Font  2 eq { /Times-Italic } if
  3046.    Font  3 eq { /Times-Bold } if
  3047.    Font  4 eq { /Times-BoldItalic } if
  3048.    Font  5 eq { /Helvetica } if
  3049.    Font  6 eq { /Helvetica-Oblique } if
  3050.    Font  7 eq { /Helvetica-Bold } if
  3051.    Font  8 eq { /Helvetica-BoldOblique } if
  3052.    Font  9 eq { /Courier } if
  3053.    Font 10 eq { /Courier-Oblique } if
  3054.    Font 11 eq { /Courier-Bold } if
  3055.    Font 12 eq { /Courier-BoldOblique } if
  3056.    Font 13 eq { /Symbol } if
  3057.    Font 14 eq { /AvantGarde-Book } if
  3058.    Font 15 eq { /AvantGarde-BookOblique } if
  3059.    Font 16 eq { /AvantGarde-Demi } if
  3060.    Font 17 eq { /AvantGarde-DemiOblique } if
  3061.    Font 18 eq { /Bookman-Demi } if
  3062.    Font 19 eq { /Bookman-DemiItalic } if
  3063.    Font 20 eq { /Bookman-Light } if
  3064.    Font 21 eq { /Bookman-LightItalic } if
  3065.    Font 22 eq { /Helvetica-Narrow } if
  3066.    Font 23 eq { /Helvetica-Narrow-Bold } if
  3067.    Font 24 eq { /Helvetica-Narrow-BoldOblique } if
  3068.    Font 25 eq { /Helvetica-Narrow-Oblique } if
  3069.    Font 26 eq { /NewCenturySchlbk-Roman } if
  3070.    Font 27 eq { /NewCenturySchlbk-Bold } if
  3071.    Font 28 eq { /NewCenturySchlbk-Italic } if
  3072.    Font 29 eq { /NewCenturySchlbk-BoldItalic } if
  3073.    Font 30 eq { /Palatino-Roman } if
  3074.    Font 31 eq { /Palatino-Bold } if
  3075.    Font 32 eq { /Palatino-Italic } if
  3076.    Font 33 eq { /Palatino-BoldItalic } if
  3077.    Font 34 eq { /ZapfChancery-MediumItalic } if
  3078.    Font 35 eq { /ZapfDingbats } if
  3079.    findfont pntsize scalefont setfont
  3080.  
  3081.    /str 1 string def
  3082.    str 0 Character put
  3083.  
  3084.    /increment Spacing 100 div pntsize mul 2 mul def
  3085.  
  3086.    eoclip
  3087.    BackGrey 0 ge
  3088.       { BackGrey 100 div 1 exch sub setgray fill }
  3089.       { newpath } ifelse
  3090.  
  3091.    /Bbury Bbury pntsize add def
  3092.  
  3093.    0 setgray
  3094.    Bblly increment Bbury
  3095.      { Bbllx 1 index moveto
  3096.        { str show
  3097.          currentpoint increment 2 div add
  3098.          dup 3 index sub
  3099.          increment 2.1 div gt { increment sub } if
  3100.          1 index Bburx gt
  3101.          {pop pop pop exit} if
  3102.          moveto
  3103.        } loop
  3104.      } for
  3105.    } bind def
  3106.  
  3107. %@Fill
  3108. /Tiles %Carreaux,4, LinΘature=8, LargeurLigne=5, GrisPremierplan=100, GrisArriΦreplan=0
  3109.    {
  3110.    /BackgroundGray exch -1 100 InRange def
  3111.    /ForegroundGray exch 0 100 InRange def
  3112.    /Linewidth      exch 0 100 InRange def
  3113.    /Frequency      exch 2 100 InRange def
  3114.  
  3115.    /newfont 10 dict def
  3116.    newfont begin
  3117.  
  3118.    /FontMatrix [1  0  0
  3119.                 1  0  0] def
  3120.    /FontType 3 def
  3121.    /FontBBox [0 0 2 1] def
  3122.    /Encoding 256 array def
  3123.    0 1 255 {Encoding exch /.notdef put} for
  3124.  
  3125.    /BuildChar
  3126.      { 2  .5
  3127.        -0.1 -0.1 2.1 1.1
  3128.        setcachedevice
  3129.        pop begin
  3130.  
  3131.        0   0 moveto
  3132.        1.5 0 lineto
  3133.        1.75  0 .25 180 90 arcn
  3134.        1.75 .5 .25 -90 90 arc
  3135.        1.75  1 .25 270 180 arcn
  3136.        0   1 lineto
  3137.  
  3138.        Linewidth pntsize div setlinewidth
  3139.        stroke
  3140.  
  3141.        end
  3142.      } def
  3143.    end
  3144.  
  3145.    /pntsize 500 Frequency div def
  3146.  
  3147.    /FillFont newfont definefont pop
  3148.    /FillFont findfont pntsize scalefont setfont
  3149.  
  3150.    eoclip
  3151.    BackgroundGray 0 ge
  3152.       { BackgroundGray 100 div 1 exch sub setgray fill }
  3153.       { newpath } ifelse
  3154.  
  3155.    ForegroundGray 100 div 1 exch sub setgray
  3156.  
  3157.    Bblly pntsize Bbury
  3158.      { Bbllx 1 index moveto
  3159.        { (a) show
  3160.          currentpoint
  3161.          dup 3 index sub
  3162.          pntsize 2.1 div gt { pntsize sub } if
  3163.          1 index Bburx gt
  3164.          {pop pop pop exit} if
  3165.          moveto
  3166.        } loop
  3167.      } for
  3168.    } bind def
  3169.  
  3170. %@Fill
  3171. /TreeRings %Anneaux,5, DistanceMax=150, DistanceMin=0, LargeurLigne=5, GrisArriΦreplan=0, RΘpartitionAlΘatoire=0
  3172.    { srand
  3173.    /BackGrey exch -1 100 InRange def
  3174.    /LineWidth exch 0 100 InRange def
  3175.    /MinDist exch 0 500 InRange def
  3176.    /MaxDist exch MinDist 500 InRange MinDist wDstChck def
  3177.  
  3178.    eoclip
  3179.    BackGrey 0 ge
  3180.       { BackGrey 100 div 1 exch sub setgray fill }
  3181.       { newpath } ifelse
  3182.  
  3183.    /cx Bburx Bbllx add 2 div def
  3184.    /cy Bbury Bblly add 2 div def
  3185.    /pntsize MaxDist MinDist sub def
  3186.    /hyp Bburx Bbllx sub dup mul Bbury Bblly sub dup mul add sqrt def
  3187.  
  3188.    /wr 0 def
  3189.    0 setgray
  3190.    LineWidth setlinewidth
  3191.  
  3192.       {
  3193.       /wr rand pntsize mod MinDist add wr add def
  3194.       cx wr add  cy moveto
  3195.       cx cy wr 0 360 arc
  3196.       stroke
  3197.       wr hyp gt {exit} if
  3198.       } loop
  3199.    } bind def
  3200.  
  3201. %@Fill
  3202. /Triangle %Triangle,4, LinΘature=8, LargeurLigne=5, GrisPremierplan=100, GrisArriΦreplan=0
  3203.    {
  3204.    /BackgroundGray exch -1 100 InRange def
  3205.    /ForegroundGray exch 0 100 InRange def
  3206.    /Linewidth      exch 0 100 InRange def
  3207.    /Frequency      exch 2 100 InRange def
  3208.  
  3209.    /newfont 10 dict def
  3210.    newfont begin
  3211.  
  3212.    /FontMatrix  [ 1 3 sqrt div  0
  3213.                   0             1 3 sqrt div
  3214.                   0             0] def
  3215.    /FontType 3 def
  3216.    /FontBBox [0 0 1 3 sqrt] def
  3217.    /Encoding 256 array def
  3218.    0 1 255 {Encoding exch /.notdef put} for
  3219.  
  3220.    /BuildChar
  3221.      { 1  0
  3222.        -0.1 -0.1 1.1 3 sqrt 0.1 add
  3223.        setcachedevice
  3224.        pop begin
  3225.  
  3226.        0 0 moveto
  3227.        1 3 sqrt lineto
  3228.        0 3 sqrt lineto
  3229.        1 0 lineto
  3230.        closepath
  3231.  
  3232.        0 3 sqrt 2 div moveto
  3233.        1 3 sqrt 2 div lineto
  3234.  
  3235.        Linewidth pntsize div 3 sqrt mul setlinewidth
  3236.        stroke
  3237.  
  3238.       end
  3239.      } def
  3240.    end
  3241.  
  3242.    /pntsize 1732 Frequency div def
  3243.    /FillFont newfont definefont pop
  3244.    /FillFont findfont pntsize scalefont setfont
  3245.  
  3246.    eoclip
  3247.    BackgroundGray 0 ge
  3248.       { BackgroundGray 100 div 1 exch sub setgray fill }
  3249.       { newpath } ifelse
  3250.  
  3251.    ForegroundGray 100 div 1 exch sub setgray
  3252.  
  3253.    Bblly pntsize Bbury
  3254.      { Bbllx pntsize sub pntsize 3 sqrt div Bburx
  3255.        { 1 index moveto
  3256.        (a) show
  3257.        } for
  3258.      pop
  3259.      } for
  3260.    } bind def
  3261.  
  3262. %@Fill
  3263. /Waves %Vagues,5, LinΘature=6, LargeurLigne=5, GrisPremierplan=100, GrisArriΦreplan=0, Espacement(%)=100
  3264.    {
  3265.    /Spacing        exch 30 300 InRange def
  3266.    /BackgroundGray exch -1 100 InRange def
  3267.    /ForegroundGray exch 0 100 InRange def
  3268.    /Linewidth      exch  0 100 InRange def
  3269.    /Frequency      exch  2 100 InRange def
  3270.  
  3271.    /newfont 10 dict def
  3272.    newfont begin
  3273.  
  3274.    /FontMatrix [1 84 div   0
  3275.                 0          1 84 div
  3276.                 0          0] def
  3277.    /FontType 3 def
  3278.    /FontBBox [37 56 111 114] def
  3279.    /Encoding 256 array def
  3280.    0 1 255 {Encoding exch /.notdef put} for
  3281.  
  3282.    /BuildChar
  3283.      { 74  0
  3284.        36.9 55.9 111.1 114.1
  3285.        setcachedevice
  3286.        pop begin
  3287.  
  3288.        1 1.5 scale
  3289.  
  3290.        37 38 moveto
  3291.        76 38 79 73 111 57 curveto
  3292.        80 60 80 38 111 38 curveto
  3293.  
  3294.        Linewidth pntsize div 84 mul setlinewidth
  3295.        stroke
  3296.  
  3297.       end
  3298.      } def
  3299.    end
  3300.  
  3301.    /pntsize 783 Frequency div def
  3302.  
  3303.    /FillFont newfont definefont pop
  3304.    /FillFont findfont pntsize scalefont setfont
  3305.  
  3306.    /Height pntsize Spacing 100 div mul def
  3307.  
  3308.    /Bbllx Bbllx Height sub def
  3309.    /Bblly Bblly Height sub def
  3310.    /Bburx Bburx Height add def
  3311.    /Bbury Bbury Height add def
  3312.  
  3313.    eoclip
  3314.    BackgroundGray 0 ge
  3315.       { BackgroundGray 100 div 1 exch sub setgray fill }
  3316.       { newpath } ifelse
  3317.  
  3318.    ForegroundGray 100 div 1 exch sub setgray
  3319.    Bblly Height Bbury
  3320.      { Bbllx exch moveto
  3321.        { (a) show
  3322.          currentpoint
  3323.          pop Bburx gt
  3324.          {exit} if
  3325.        } loop
  3326.      } for
  3327.    } bind def
  3328.  
  3329.